面试
少年的肩头草长莺飞
猝死不是程序员该担心的,脱发才是
展开
-
equals和==的区别
==当比较对象的时候:比较的是栈内存中存放在堆内存中的地址,比较两个对象的地址是否相同(也就是比较两个变量是否指向 同一个对象。当比较基本数据类型时候(byte,short,int,long,char,double,folat,boolean):则直接比较值。举例:inti=1; int j=1; i==j结果为t...原创 2019-03-03 13:02:45 · 1928 阅读 · 0 评论 -
java 删除制定目录下的文件夹和文件 包括其本身
public static void t2(String path){ File file=new File(path); //判断路径是否存在 if (file.exists()){ //放到得到当前文件夹下的目录数组 File[] files=file.listFiles(); ...原创 2019-04-02 19:47:13 · 514 阅读 · 0 评论 -
接口和抽象的区别
抽象类的作用是用于规范子类行为,捕捉子类的通用特性,对代码的维护和重用。接口的作用 ,定义接口有利于代码的规范,有利于对代码进行维护,实现低耦合,java中只有单继承,但是可以实现多个接口。...原创 2019-03-27 11:13:48 · 214 阅读 · 0 评论 -
java HashSet源码分析
上一篇集合中写到 Set是一个无序列表,不可重复,需要重写equals和hashCode方法HashSet实现了Set接口,它不保证set 的迭代顺序,且不保证其顺序永久不变,允许为null空值。继承AbstractSet接口,实现Set接口,克隆,序列化Set<E>, Cloneable, java.io.SerializableAbstractSet官方解释:...原创 2019-03-19 12:04:15 · 261 阅读 · 0 评论 -
一张图看完网络模型
原创 2019-03-22 09:54:02 · 183 阅读 · 0 评论 -
关于自增的一些问题 i++
int i=0;i=i++;i=0;这里贴一下字节码分析分析如下:1,首先将0入操作数栈。2,再把0弹出保存到局部变量表index 1中。3,把index 1中的0复制一份入操作数栈 此时操作栈中为0,局部变量表为0。4,局部变量表中index 1进行自增,此时操作栈中为0,局部变量表为1.5,将栈中的值弹出放在index 1里面进行覆盖。此时局...原创 2019-03-12 17:22:10 · 438 阅读 · 0 评论 -
JVM内存模型
JVM内存分配:java堆:内存最大的一块,存放对象的实例,几乎所有的对象实例(包括数组)都在这里,也是GC管理的主要区域。java栈:线程私有,它的生命周期与线程相同,是java执行的内存模型在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数。这个栈帧的大小是提前计算好的,而...原创 2019-03-20 16:34:50 · 172 阅读 · 0 评论 -
Int和Integer的一些区别和技术点
int i=127; Integer i2=127; Integer i3=new Integer(127); //打印hashCode System.out.println(System.identityHashCode(i)); System.out.println(System.ident...原创 2019-03-11 23:22:46 · 284 阅读 · 0 评论 -
java执行流程
通过javac编译成JVM能识别的二进制文件(.class),这样就可以消除平台差异。第一步(编译):创建完源文件之后,程序先要被JVM中的java编译器进行编译为.class文件。java编译一个类时,如果这个类所依赖的类还没有被编译,编译器会自动的先编译这个所依赖的类,然后引用。如果java编译器在指定的目录下找不到该类所依赖的类的 .class文件或者 .java源文件,就会报"Ca...原创 2019-03-11 17:18:57 · 313 阅读 · 0 评论 -
1.7JDK和1.8JDK结构
JDK:开发环境,核心是Java SE APIJRE:运行环境JVM:Java Virtual Mechinal(JAVA虚拟机)。在1.7中JVM是javaSE的一部分,1.8总分割开1.8如下:原创 2019-03-11 13:01:04 · 464 阅读 · 0 评论 -
java HashMap源码分析(JDK1.8)
HashMap继承AbstractMap<K,V> ,implements Map<K,V>, Cloneable, Serializable键值对存储,HashMap最多只允许一条记录的key值为Null(多条会覆盖);允许多条记录的Value为 Null.源码中可以看到一个静态的内部类(单向链表):static class Node<K,V> imp...原创 2019-03-19 18:41:43 · 1492 阅读 · 0 评论 -
java集合类
这里主要讲Set List Map类型首先看Set和List他们都是继承于Collection//我们这里将 ArrayList集合作为 Collection 的实现类 Collection collection = new ArrayList(); //添加元素 collection.add("Tom");...原创 2019-03-04 13:26:45 · 130 阅读 · 0 评论 -
String 和StringBuillder,StringBuffer区别
1.String是不可变的字符串因为底层使用的是 private final char value[]; StringBuillder和StringBuffer都是可变的底层没有使用final2.执行速度上StringBuilder>StringBuffer>StringStringBuffer里面的方法都是使用synchronized修饰,没有线程安全问题,但...原创 2019-03-03 13:39:08 · 395 阅读 · 0 评论 -
为什么Java中只有值传递?
参考Java核心技术卷4.5方法参数最开始以为Java有值传递和引用传递,在JavaGuide中看到一个标题为什么Java中只有值传递?写了三个例子,讲述了为什么Java只有值传递。例子A :public static void main(String[] args) { int i=1; int j=2; //交换两个值 swap(i, j); System....原创 2019-06-11 09:24:03 · 3208 阅读 · 0 评论