随笔分类 -  java基础

摘要:值传递是传递的是原值的副本,引用传递传递的是原值。 在Java中,如果是基本数据类型,传递的是该参数字面量值的拷贝。如果是引用数据类型,传递的是该参数所引用对象在堆中地址的拷贝。 swap(int a,int b)这个方法 在方法内部交换a b的值?? 这两个值应该不变,改用swap(integer 阅读全文
posted @ 2018-03-25 15:35 战斗的小白 阅读(288) 评论(0) 推荐(0)
摘要:Comparable和Comparator的区别 Comparable Comparable可以认为是一个内比较器,compareTo方法也称为自然比较方法。 实现Comparable接口的类有一个特点,就是这些类是可以和自己比较,如何比较就是利用compareTo方法。 Compatator Co 阅读全文
posted @ 2018-03-17 01:27 战斗的小白 阅读(366) 评论(0) 推荐(0)
摘要:参考:https://www.jianshu.com/p/160c9be0b132 连接符号 "+" 本质 字符串变量(非final修饰)通过 "+" 进行拼接,在编译过程中会转化为StringBuilder对象的append操作,注意是编译过程,而不是在JVM中。 public class Str 阅读全文
posted @ 2018-03-16 23:58 战斗的小白 阅读(232) 评论(0) 推荐(0)
摘要:参考:https://www.jianshu.com/p/0d1c003d2ff5 String.intern() String.intern()是native方法,底层调用c++中的StringTable:intern方法。 当调用intern方法是,如果常量池已经存在该字符串,则返回池中字符串。 阅读全文
posted @ 2018-03-16 10:05 战斗的小白 阅读(234) 评论(0) 推荐(0)
摘要:参照:https://www.jianshu.com/p/2f209af80f84 常量池: Java代码被编译成class文件时,会生成一个常量池(Constant pool)的数据结构,用以保存字面常量和符号引用(类名、方法名、接口名和字段名等)。 通过命令javap -verbose查看cla 阅读全文
posted @ 2018-03-15 23:48 战斗的小白 阅读(196) 评论(0) 推荐(0)
摘要:Set的特点:Set元素无顺序,且元素不可以重复。 1、定义 Set接口定义: 2、底层存储 3、构造方法 4、增加和删除 Hashset的很多地方就是利用 hashmap的key实现的 阅读全文
posted @ 2018-03-10 18:35 战斗的小白 阅读(327) 评论(0) 推荐(0)
摘要:静态代理 1)定义一个接口 2)被代理类 3)代理类 日志代理: 记时代理 测试类: 结果: **聚合方式要优于继承方式 继承:继承父类想要的功能 聚合:传入参数,实现想要的父类 如果为继承方式,如果日志和时间的位置要调换,那么需要新定义一个子类 而继承方式只需要在测试类中,调换位置就行 动态代理: 阅读全文
posted @ 2018-03-08 16:32 战斗的小白 阅读(184) 评论(0) 推荐(0)
摘要:参照: http://mp.weixin.qq.com/s/dzNq50zBQ4iDrOAhM4a70A http://mp.weixin.qq.com/s/1yWSfdz0j-PprGkDgOomhQ JDK1.7 多线程下死循环 源代码: resize步骤: 1.扩容 创建一个新的Entry空数 阅读全文
posted @ 2018-03-07 10:45 战斗的小白 阅读(1296) 评论(0) 推荐(0)
摘要:HashMap数组每个元素的初始值为NULL 1、定义 hash是“散列”:hash就是通过散列算法,将一个任意长度关键字转换为一个固定长度的散列值,但是有一点要指出的是,不同的关键字可能会散列出相同的散列值 2、HashMap类 3.底层存储 Entry数组 HashMap采用将相同的散列值存储到 阅读全文
posted @ 2018-03-06 23:33 战斗的小白 阅读(249) 评论(0) 推荐(0)
摘要:参照:http://www.cnblogs.com/tstd/p/5104099.html Stack(Fitst In Last Out) 1、定义 Vector是List的一个实现类,基于数组。扩容为*2。其功能和实现代码和ArrayList基本一样,Vector是线程安全的,ArrayList 阅读全文
posted @ 2018-03-06 21:26 战斗的小白 阅读(135) 评论(0) 推荐(0)
摘要:包装类:基本数据类型对应的类 一.什么是装箱?什么是拆箱? 装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。 下表是基本数据类型对应的包装器类型: int 4 Integer byte 1 Byte short 2 Short long 8 Long fl 阅读全文
posted @ 2018-03-05 10:53 战斗的小白 阅读(277) 评论(0) 推荐(0)
摘要:为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这种生 阅读全文
posted @ 2018-03-04 23:33 战斗的小白 阅读(438) 评论(0) 推荐(0)
摘要:Throwable 是所有 Java 程序中错误处理的父类 Error JVM Exception 程序 Checked Exception:继承java.lang.Exception 代表程序不能控制的无效外界情况。除了Error以及RuntimeException(运行时异常)及其子类,如:Cl 阅读全文
posted @ 2018-03-04 23:15 战斗的小白 阅读(290) 评论(0) 推荐(0)
摘要:重载 overloading 一个类中多态性的一种表现 java方法重载,在类中可以创建多个方法,具有相同的名字,但是具有不同的参数和不同的定义 重载,方法名一样,参数类型和个数不一样,返回类型可以相同也可以不同 重写 overriding 父类与子类之间的多态性 (1)子类中不能重写父类中的fin 阅读全文
posted @ 2018-03-04 20:04 战斗的小白 阅读(723) 评论(0) 推荐(0)
摘要:对比Integer和AtomicInteger Integer: AtomicInteger: 以上两段代码,在使用Integer的时候,必须加上synchronized保证不会出现并发线程同时访问的情况,而在AtomicInteger中却不用加上synchronized,在这里AtomicInte 阅读全文
posted @ 2018-03-02 15:16 战斗的小白 阅读(380) 评论(0) 推荐(0)
摘要:不可变类:是指这个类实例一旦创建,就不能不该其成员变量的值 优点: 1.线程安全 对象的值无法改变,降低并发错误的可能性 2.效率高 当一个对象需要复制时,就只需要复制对象地址,不用复制本生 不变性,保证了hashcode的唯一性,每次缓存时不必重新计算hashcode,所以常用string作为ke 阅读全文
posted @ 2018-02-27 17:22 战斗的小白 阅读(338) 评论(0) 推荐(0)
摘要:转载于:https://www.zhihu.com/question/20111251 困惑:例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现方法,那我不如直接就在这个类中写实现方法岂不是更便捷,还省去了定义接口?接口在java中的作用是什么? 总结回答: 接口是一种规范 软件开发大 阅读全文
posted @ 2017-06-26 17:37 战斗的小白 阅读(4331) 评论(0) 推荐(1)