java
wang_nian
不以物喜 不以己悲 生于忧患 死于安乐
展开
-
java反射
反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释。一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作。Apple apple = new Apple(); //直接初始化,「正射」apple.setPrice(4);上面这样子进行类对象的初始化,我们可以理解为「正」。而反射则是一开始并不知道我要初始化的类对象是什么,自然也无法使用 new 关键字来创建对象了。这时候,我们使用 JDK 提供的转载 2020-12-28 15:50:50 · 153 阅读 · 0 评论 -
JVM------内存管理
1、java内存区域与内存溢出异常1.1、程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。1.2、java虚拟机栈与程序计数器一样,Java虚拟机栈(Java Virtual Machine Stack)也是线程私有的,它的生命周期与.原创 2020-12-05 21:50:20 · 82 阅读 · 0 评论 -
抽象类和接口的区别?为什么要有
抽象类(abstract class):使用abstract修饰符修饰的类。官方点的定义就是:如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。实际点来说,一个抽象类不能实例化,因为“没有包含足够多的信息来描述一个具体的对象”。但终归属于类,所以仍然拥有普通类一样的定义。依然可以在类的实体(直白点就是能在{}里面)定义成员变量,成员方法,构造方法等。那么可能初学者会问:既然不能实例化,那么在类里面定义成员方法,成员变量有什么用。抽象类在实际应用中,更多的是因为类中有抽象原创 2020-09-27 10:14:55 · 751 阅读 · 0 评论 -
java开发手册(阿里)摘录
1、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。2、所有整型包装类对象之间值的比较,全部使用equals方法比较。 说明:对于Integer var = ? 在-128至127之间的赋值,Integer对象是在 IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。3、【推荐】原创 2020-09-09 11:10:34 · 67 阅读 · 0 评论 -
JSON.parseObject 和 JSON.toJSONString
JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。在前后台的传输过程中,Json字符串是相当常用的,这里就不多介绍其功能了,直接举一下应用的小例子,帮助理解这两个方法的用法。定义一个model类,员工,有四个属性,如下所示:package jsonTest;import java.util.Date;/** * @author wujiang * @version 1.0.0. * @date 20转载 2020-08-21 17:23:25 · 351 阅读 · 0 评论 -
java removelf 详解
作用:删除集合中符合条件的成员原创 2020-07-21 20:20:30 · 302 阅读 · 0 评论 -
JAVA static 关键词详解
文章大纲:1.为什么static会有这样的效果?2.static的使用3.static误区4.static面试题static的魔法效果是:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。为什么static会有这样的效果这是一个简单的java程序创建的过程,我们可以看到,在类的首次加载的时候会去执行static的变量或者块,它是先于对象被加载的。所以不依赖于对象JVM对这些static的东西只加载一次和分配一次内存.转载 2020-07-21 20:03:51 · 144 阅读 · 0 评论 -
将List<String>转化为String(httpGet中入参是list类型时如何解决)
Q:如何在HashMap<String,String> 中将一个List<String>转化为String传入?方法一:String str1 = List.toString();String str = str1.substring(1,str1.length()-1);map.put("num",str);方法二:map.put("num", Joiner.on(",").join(List));分析:为什么方法一会出错呢?将方法一打印出来会发现.原创 2020-07-20 14:51:50 · 2257 阅读 · 0 评论 -
java Lambda 与forEach
lambda表达式λ表达式本质上是一个匿名方法。 public int add(int x, int y) { return x + y; }转成λ表达式后是这个样子: (x, y) -> x + y; //返回两数之和普通方式遍历 Map Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put(...原创 2020-07-13 11:28:09 · 2800 阅读 · 0 评论