四时宝库

程序员的知识宝库

小记:java中如何避免空指针(java中空指针异常的原因)

前言:

其实在阿里巴巴的《Java开发手册》里边,空指针,也就是NullPointerException 简称NPE的,怕一下子写出NPE,部分的伙伴看不懂,索性就改成了空指针。下文的空指针异常,我们用NPE表示。

Java代码分析:为什么不报空指针错误?

代码示例:

public class Greeting {

    public static void main(String[] args) {
        Greeting greeting = null;
        greeting.hello();
    }

    public static void hello() {
        System.out.println("Hello World!");
    }
}

Java如何优雅的解决空指针?(javaweb空指针异常)

一、介绍

java.lang.NullPointerException空指针异常

NPE空指针异常出现的原因是什么?

空指针异常应该是初学编程的同学遇到最多的一种异常,由于缺少编程经验,对引用数据类型的数据使用不恰当导致的异常。

空指针就是空引用,java空指针异常就是引用变量本身为null,却调用了null的方法,这个时候就会出现空指针异常。

关于java 变量“指针”实验报告(java定义指针)

通篇说明:

System.out.println(object)是java语言用于获取对象的内存地址的方法。

案例一:

int a=0;

int b=0;

System.out.println("*************案例1****************");

java算法之双指针,双指针算法的分类有哪些?

什么是双指针算法?

双指针算法,顾名思义,就是在算法实现中使用两个指针来遍历数据结构(如数组或链表)以达到特定目的的一种技术。这种技术的魅力在于其简单性和效率,特别是在解决一些特定类型的问题时,比如查找成对的元素或者判断是否存在某种满足条件的序列。

InfoQ 2020 年 JavaScript 和 Web 开发趋势报告

本文要点

  • 从我们的上一次报告算起,WebAssembly 可能是 Web 趋势方面被讨论最多的技术。WebAssembly 应用已经基于 WASI 跨越了浏览器的限制,WebAssembly 在 2019 年底达到了稳定的 1.0 W3C 推荐水准。我们将 WebAssembly 提升到了早期采用者状态。

5月份GitHub最热门的开源项目(github开源web项目)

编辑丨极客时间编辑部

最近,对于今年 5 月份 GitHub 上开源项目的排名已经统计出来了,本文列举了 12 项最热门的开源项目。

1.Node 之父的新项目 deno(Star 3625)

最近,Node 之父发布了新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,通过使用 Go 语言代替 C++,重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时。

node上传excel并读取其中信息(node上传文件)

fileUp.uploadXlsx = async function(params) {
    try {
        var fileName = params['fileName'];
        var filePath = params['path'];
        var fileType = params['fileType'];
        console.log(fileName + ':' + fileType);
        if( filePath != null && filePath != undefined) {
            var sheets = xlsx.parse(filePath, { cellDates: true });
            // var arr = [];
            //sheets是一个数组,数组中的每一项对应test.xlsx这个文件里的多个表格,如sheets[0]对应test.xlsx里的“测试参数”这个表格,sheets[1]对应Sheet2这个表格
            var sheet = sheets[0]
            var newSheetsArr = [];
            //sheet是一个json对象,格式为{name:"测试参数",data:[]},我们想要的数据就存储在data里
            for(var i=1; i<sheet["data"].length; i++){ //excel文件里的表格一般有标题所以不一定从0开始
                var row=sheet['data'][i];
                if(row && row.length > 0){
                    console.log("row",row)
                    //手机号码正则
                    if((/^1[3456789]\d{9}$/.test(row[1]))&&row[0]>0&&row[2]){
                        //判断手机号是否存在,存在返回id,不存在创建用户并返回id
                        let userid = 0
                        let users = await daoUser.getByPhone(row[1])
                        if(users&&users.length>0){
                            userid = users[0].id;
                            await daoPoster.addComment([userid,row[0],row[2],row[3]])
                        }else{
                            //根据手机号码创建新用户
                            var dateNow = moment().utc().add(480,"minutes").toDate();
                            let addUserResult = await daoUser.addUser([row[1],row[1],dateNow]);
                            console.log("addUserResult",addUserResult)
                            if (addUserResult && addUserResult.insertId != 0){
                                userid=addUserResult.insertId;
                                await daoPoster.addComment([userid,row[0],row[2],row[3]])
                            }else{
                                console.log("添加用户失败,未取到userid")
                                return resultApi.helper(resultMsg.SYSTEM_ERROR.code,resultMsg.SYSTEM_ERROR.message);
                            }
                        }
                        //更新日活
                        await posterController.updateUserInteract(userid);
                    }else{
                        console.log("数据校验失败",row)
                    }
                    //否则数据跳过
                }
            }
            // arr.push(newSheetsArr);
            // console.log("arr",arr)
            // sheets.forEach(function(sheet){
            // }); 
            return resultApi.helper(resultMsg.SUCCESS.code,resultMsg.SUCCESS.message);
        }
    } catch (error) {
        console.log("error",error)
        return resultApi.helper(resultMsg.SYSTEM_ERROR.code,resultMsg.SYSTEM_ERROR.message);
    }
}

Node.js + Express: 用户基于Token的身份校验

点击右上方红色按钮关注“web秀”,让你真正秀起来

前言

Todo List项目到这里已经到了非常重要的部分,涉及到用户部分。权限,多人协同操作等,都是非常重要,且复杂的地方,所以这里分为几个章节,一步一步的完成。

本章节主要讲讲用户登录,注册会话部分。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接