Java小知识
记录自己发现的Java的一些小知识
IPostYellow
这个作者很懒,什么都没留下…
展开
-
SSM开发常用依赖、注解说明小手册(随着自己的学习而更新!)
常用依赖spring依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.0.RELEASE</version></dependency>mysql依赖<!--mysql驱动--><dependency原创 2021-05-15 15:43:40 · 171 阅读 · 0 评论 -
equals判断字符串相等的时候常量要放左边来避免空指针异常
比如我有一个String类型的变量color。我现在要判断这个color是否为红色。就应该这么写:if ("red".equals(color)){ ... }这样做的好处是即使color变量为null也不会报空指针异常。如果是if (color.equals("red")){ ... }这种写法,则color为null的时候会出现空指针异常NullPointerException。...原创 2021-05-02 16:27:06 · 923 阅读 · 0 评论 -
Java中,面向对象、面向过程、面向接口编程的理解
面向过程编程面向过程是一种以事件流程为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后一步一步地按步骤编写代码实现。面向对象编程在日常生活中,许多事情是可以被抽象出来的,对于某个具体的人或事物,都可以看作是一个对象,每个对象都有自己的属性和行为,对象和对象之间也可以通过方法来交互。面向对象是一种以对象为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。关于接口的理解接口从更深层次的理解,应是定义(规范、原创 2021-04-28 09:30:15 · 514 阅读 · 1 评论 -
Java线程对象start()两次会产生IllegalThreadStateException异常
通过Thread实例的start(),一个Thread的实例只能产生一个线程。一个Thread的实例不管这个线程后来有没有执行到底,只要调用了一次start()就再也没有机会再调用start()运行了。一个线程对象只能调用一次start方法,否则会产生:IllegalThreadStateException异常。 但是run()方法是可以被重复调用的。Thread源码中的start方法里,有用一个threadStatus变量来标记线程是否被start过,调用了start0()之后,threadStatus原创 2021-04-09 09:46:53 · 798 阅读 · 0 评论 -
Java小知识:空HashMap存储的是同一个内存地址
在使用HashMap的时候,偶然发现,new的两个HashMap对象的mm和mn是一样的内存地址,甚至指定的键值类型不同也会指向同一个地址。但是如果往其中的一个HashMap添加键值对以后,就会变两个不同的内存地址了。而这种情况并不是所有的类都存在的,Object类就不存在这种情况。猜测可能是Java中为了节省内存,空HashMap的时候全都指向同一个地址,当HashMap开始变化的时候才会改变。无论是一开始刚实例化的空HashMap,还是中间增增删删导致HashMap变成的空HashMap,全都指向同一个原创 2021-04-05 14:38:36 · 482 阅读 · 1 评论