Java语法
Java
城志
这个作者很懒,什么都没留下…
展开
-
接口类、抽象类和普通类的区别
设计层面:抽象类是多个子类公共特征的抽象,可以想象成基因图谱。比如猴子的子类有金丝猴、长尾猴等。抽象类是子类的模板。这样做有助于代码复用。所以抽象类只支持单继承。接口类是行为的抽象,这种行为可以跨物种。比如麻雀、蝴蝶、风筝都能实现“飞:这个行为。所以可以理解接口是支持多重继承的,也是实现多态的基础,所以它的方法是抽象的,不需要实现。接口抽象类普通类变量public st...原创 2020-03-03 15:29:00 · 128 阅读 · 0 评论 -
String、StringBuilder和StringBuffer的比较
目录 1.String特性 1.1 不可变 1.2 字符串常量池 2.StringBuilder和StringBuffer 2.1 区别 2.2 应用场景 @1.String特性1.1 ...原创 2020-03-03 15:30:00 · 54 阅读 · 0 评论 -
深入理解Java并发容器——ConcurrentHashMap
目录重要属性和类put为什么java8后放弃分段锁,改用CAS和同步锁初始化addCount扩容树化参考重要属性和类sizeCtl容量控制标识符,在不同的地方有不同用途,而且它的取值不同,也代表不同的含义。负数代表正在进行初始化或扩容操作,-1代表正在初始化-N 表示有N-1个线程正在进行扩容操作正数或0代表hash冲突链表还没有被初始化,这个数值表示初始化或下一次进行扩容的大小,这...原创 2020-03-03 15:33:00 · 108 阅读 · 0 评论 -
深入理解Java容器——HashMap
目录存储结构初始化putresize树化get为什么equals和hashCode要同时重写?为何HashMap的数组长度一定是2的次幂?线程安全参考存储结构JDK1.8前是数组+链表,JDK1.8之后是数组+链表+红黑树。本文分析基于JDK1.8源代码。HashMap的基础结构是Node ,它存着hash、键值对,Node类型的指针next。主干是桶数组,链表bin用于解决hash冲突,...原创 2020-03-03 15:35:00 · 127 阅读 · 0 评论 -
深入理解Java多线程——ThreadLocal
目录 定义 API 场景分析 场景实验,观察Spring框架在多线程场景的执行情况 10000此请求,单线程 10000次请求,线程数加到100 对c的访问加锁 把c设为ThreadLocal 收集多个Thr...原创 2020-03-09 15:43:00 · 426 阅读 · 0 评论 -
深入理解Java多线程——线程池
目录 定义 不同线程池的创建 Executor的组成 线程池生命周期 execute()方法 线程池大小的设置 线程池的使用 参考 定义线程池,除了池的功能外,还提供了更全面的线程管理、任务提...原创 2020-03-09 17:26:00 · 405 阅读 · 0 评论 -
Java中的四种引用和引用队列
目录 强引用 软引用 弱引用 幻象引用 Reachability Fence 参考 强引用正常的引用,生命周期最长,例如 Object obj = new Object(); 当JVM内存不足时,宁可抛出OutOfMemor...原创 2020-03-10 10:59:00 · 712 阅读 · 0 评论 -
深入理解Java并发类——AQS
目录 什么是AQS 为什么需要AQS AQS的内部数据和方法 如何利用AQS实现同步结构 参考 什么是AQSAbstractQueuedSynchronizer,是Java并发包中,实现各种同步结构和部分其他组成单元的基础,如线程池中的Wo...原创 2020-03-13 16:11:00 · 216 阅读 · 0 评论 -
Java的IO流
目录概念操作举例相互转化概念IO流:数据从外部介质(磁盘、键盘)输入到内存为输入流,反之为输出流。文件的存储方式:所有的文件在硬盘或在传输时都是以字节的方式进行的,字符是只有在内存中才会形成。读取字节流后,不直接操作,而是查询指定编码表,就可以转化为字节流(如文字)。Java的字节流和字符流字节流:按字节处理,直接操作文件本身,主要用于处理二进制数据、视频、图片、文件等。...原创 2020-08-05 09:48:00 · 94 阅读 · 0 评论 -
Java的反射机制
目录概念反射常用API获取类对象的方法通过反射创建类对象通过反射获取类属性、方法、构造器反射的原理和源码分析总结概念Java反射机制是指程序可以在运行时,(动态)加载和使用编译期间未指定的类。具体过程是,通过类名获取类的完整构造(如属性、方法,可用于反编译),并声称类的对象,并调用其方法。优点:代码更简洁、提高了灵活性和扩展性缺点:性能差、破坏封装性使用场景:反编译、简单工厂...原创 2020-08-05 09:53:00 · 167 阅读 · 0 评论 -
JDBC的那些事
目录jdbc简介接口和数据库驱动jdbc的好处jdbc连接添加依赖创建数据库和表连接CRUD查询SQL注入数据类型转换小结插入更新删除jdbc事务jdbc Batch连接池jdbc简介JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。接口和数据库驱动使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数...原创 2020-08-19 11:20:00 · 437 阅读 · 0 评论 -
序列化与反序列化
序列化将Java程序中的对象,转换成字节流,使之可以保存到磁盘或通过网络传输。序列化的条件:类实现了Serializable接口序列化的关键步骤:class Test implements Serializable{ }//实现接口的类Test obj = new Test();ObjectOutputStream oos = new ObjectOutputStream(new Fi...原创 2020-02-15 14:48:28 · 122 阅读 · 0 评论 -
java多线程总结
原创 2020-02-05 17:29:41 · 109 阅读 · 0 评论