
java
文章平均质量分 69
芙兰泣露
科学即信仰
展开
-
java笔记(一):String,StringBuffer,StringBuilder
主要记录java中的String赋值及比较的问题以及StringBuffer和StringBuilder比较:==和.equals赋值:= 和 new String(“”)比较:==和.equalsjava中,除了基本数据类型(int, short, long, byte, char, boolean, float, double)存储的是值本身外,其他的数据类型存储的都是对象的引用(或者称为原创 2017-06-06 16:52:28 · 548 阅读 · 0 评论 -
java笔记(三):IO流
笔记终于进行到第一个有深度且重要的模块了。 IO流是java用于处理输入输出数据的类的集合。 上图包含了java中所有的IO类。 在阅读源码的基础上,写一些对于各个类的简单理解。原创 2017-06-16 05:27:56 · 934 阅读 · 0 评论 -
java(十五):concurrent(0)—AtomicInteger,Unsafe,CAS
因为java在concurrent包中大量的使用到了AtomicInteger,于是打算从AtomicInteger开始对concurrent包的各个类做一番探究。 如果想对int型数据进行院原子操作,那么推荐使用AtomicInteger。 当然也可以使用synchronized代码块,但使用AtomicInteger更高效。 如下代码说明了使用AtomicInteger和使用Integer原创 2017-11-06 20:02:53 · 439 阅读 · 0 评论 -
java(十二):线程池和ThreadPoolExecutor
阅读前请确保对于Thread和Runnable熟悉,可以参考多线程,Thread和Runnable 本博客从源码层面讲起,到最后常用的四个线程池。Executor这是线程池实现的最底层的接口,只包含一个方法:public interface Executor { /** * Executes the given command at some time in the future.原创 2017-10-16 13:18:43 · 480 阅读 · 0 评论 -
java笔记(六):集合,容器
这一节是java最复杂的体系之一,包含各种各样的容器和方法。传统遗留枚举(Enumeration),位集合(BitSet),向量(Vector),栈(Stack),字典(Dictionary),哈希表(Hashtable),属性(Properties)均是java遗留的数据结构,现在已经很少使用。原创 2017-06-23 03:16:57 · 450 阅读 · 0 评论 -
java笔记(七):网络编程
java.net 包中提供了两种常见的网络协议的支持:TCP:Transmission Control Protocol 传输控制协议,是一种可靠的、基于字节流的传输层通信协议UDP:User Datagram Protocol 用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务原创 2017-07-02 16:12:03 · 242 阅读 · 0 评论 -
java笔记(五):多线程--Thread和Runnable
多线程是java高效利用的CPU的关键。 首先要明白线程与进程的区别。原创 2017-06-21 04:24:27 · 319 阅读 · 0 评论 -
java(十七):concurrent(2)—lock和condition
Lock和Condition只是concurrent中的两个接口,但基于这两个接口实现的类完成了先前由synchronized和object共同实现的方法。 但就生产者消费者来说(参考生产者与消费者),Lock相当于synchronized,而Condition的await()和signal()方法相当于Object的wait()和notify()方法。 在讲解Lock和Condition之前,原创 2017-11-07 10:17:49 · 289 阅读 · 0 评论 -
java(十六):concurrent(1)—生产者与消费者
从并发的最基本的问题说起——生产者与消费者。 在此之前,我们介绍下Object中的两类方法:wait(),notify()等待与唤醒包括wait(), wait(long timeout), notify(), notifyAll()。 和Thread中的静态方法sleep(),join(),yield()不同,wait()和notify()是Object中的非静态方法。wait()wait()原创 2017-11-06 21:47:13 · 425 阅读 · 0 评论 -
java(十四):transient与序列化
transient译作临时的,瞬态的意思,指的是在序列化的时候,被该关键字修饰的变量将不会被持久化。 比如用户的密码,身份证号,当希望将其保存到文件而又过滤掉这些敏感信息时,就可以使用该关键字修饰。 说道序列化,需要说明的是,static关键字不会被被序列化也不会被反序列化,因为static是类成员,在反序列化时(其实等同于初始化),就会使用类里的初始值,然而需要注意的是,内存中如果已经存在该类原创 2017-10-28 15:50:14 · 279 阅读 · 0 评论 -
java(十三):volatile与内存模型
作为深入理解java中的锁,首先应该掌握volatile的含义和用法。线程之间的可见性可见性对于java初学者并不是一个从字面上就可以简单理解的名词。 往深了说,要真正掌握volatile关键字,还需要有基本的jvm的知识,这里只需要理解jvm的分区以及各个区的内容含义就知道了,参考前面的一篇博客jvm内存划分 我们需要掌握的有两点: 1. 同一进程的不同线程之间其内存空间是不共享的,类似虚拟原创 2017-10-28 11:50:42 · 257 阅读 · 0 评论 -
java笔记(十):枚举(enum)
java中和枚举有关的关键字有很多,通常意义上用来定义有限个变量的关键字一般是指enum.原创 2017-08-25 13:20:18 · 344 阅读 · 0 评论 -
java笔记(九):synchronized
synchronized常用来保证线程安全,作为java中比较复杂的一个关键字,有必要专门进行一次总结。原创 2017-07-03 22:26:54 · 251 阅读 · 0 评论 -
java笔记(八):反射
java中的反射,是指在运行时,对于任意一个类,都可以知道这个类的所有属性和方法,对于任意一个对象,都能调用该对象的所有属性和方法。反射机制主要提供了如下功能, 在运行时:判断一个对象所属的类构造一个类的对象判定一个类的成员变量和方法调用一个对象的方法生成动态代理原创 2017-07-03 15:19:45 · 196 阅读 · 0 评论 -
java笔记(四):泛型
一句话,泛型的本质是 参数化类型原创 2017-06-18 21:54:04 · 274 阅读 · 0 评论 -
java笔记(二):多态
通俗来讲,多态就是指对同一消息做出不同反应。java中,多态是通过继承和重写来实现的。原创 2017-06-08 19:24:10 · 387 阅读 · 0 评论 -
java笔记(十一):Collections
作为java集合框架的最后一部分,本节介绍下集合框架的内置功能以及实现这些功能的算法。 Collections类中的方法都是静态方法,用于完成某一特定的功能,比如排序,查找等。下面从源码层面介绍各种方法。 首先,需要对于一些名词进行解析。 由于存在存取的方式不同,list分为随机存取(RandomAccess)和迭代存取(Iterator),其实就是所谓的线性表和链表啦。 两者的区别也不用多原创 2017-10-06 14:56:18 · 420 阅读 · 0 评论