Long a=null; Bean bean =new Bean(); bean.setApple(null); bean.setBnana(a);
报空指针,拆箱过程出现的问题吗?
皮毛级JAVA开发工程师
Long a=null; Bean bean =new Bean(); bean.setApple(null); bean.setBnana(a);
报空指针,拆箱过程出现的问题吗?
model里边定义recduer,无论如何都订阅不到。在vscode上发现namespace没变色,猜测是namespace没有成功定义。
找了半天,最后问题的原因出现在
代码
“`
public void testThread(){
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(“1”);
}}
).start();
Thread.yield();
System.out.println(“2”);
}
“`
Thread.yield();的作用是让当前线程让步,使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执行态里选择。
说的很直白了其实。
而如果不加Thread.yield();那么“2”是会先打印的。原因就是start方法调用后在被调用(callee)的新线程上还要经过一些JVM内部的初始化动作才能跑到指定的入口方法。
so,应该是主线程执行完之后再执行已就绪的线程。
class User {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public User(String name) { super(); this.name = name; }
@Override public int hashCode() { return 2 * name.hashCode(); }
public boolean equals(Object user) { if (this.getName().equals(((User) user).getName())) { return true; } else return false; }
@Override public String toString() { return “User [name=” + name + “]”; }
代码贴一下。之前一直不成功,因为把equals方法写成了public boolean equals(User user) 。
原因很明了了,object中的equals是被继承了,只不过重载了一下。
因此在hashmap的 put里还是相当于不相等的。
哈哈,顺道复习了下重载和重写。常用但是忘了定义都忘得差不多了。
温故而知新吧。
服务器上之前用的是php+apache做的静态服务器,放个官网。因为后期打算放个论坛,因此想用把nginx先用上,方便以后负载变高时的扩展。
nginx的安装没什么,找个教程复制下命令就顺利安装成功。
但是php本来用的是7.1,集成apache没有任何问题。但是编译的时候没有少了很多扩展,只能重新编译安装。然后就是喜闻乐见的编译失败,提示ext/mysqlnd/.libs/mysqlnd_ps.o: In function `mysqlnd_stmt_fetch_row_buffered。搜索了下,没有靠谱的回答,咋试都不行。最后选择了换版本,重新下载了7.0版本,然后就安装成功了。初步怀疑是php7和系统的mysql配置不兼容。
还有一个问题使用nginx的初始配置文件,报了个file not found。修改这一行:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
还有 需修改location / {
root /usr/local/apache2/htdocs;
index index.html index.htm;
}
后才能识别非php文件。