java
zhaojianyin
runing
展开
-
LinkedList源码分析(基于jdk1.8)
LinkedList源码分析1.继承结构public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable说明:LinkedList的类继承结构,Deque接口表示是一个双端队列,那么也意味着LinkedLi原创 2017-04-27 11:01:25 · 479 阅读 · 0 评论 -
NIO网络通信
NIO非阻塞式网络通信1.简单介绍阻塞式:客户端发送请求给服务端,服务端不能确定客户端发过来的数据真实有效时,这个线程会阻塞,此时服务端的线程等待。当客户端发送大量数据时,服务端使用多个线程进行数据传输。(使用多线程解决IO阻塞问题)即使是使用多线程,那么一个服务器的线程数量还是有效的,一旦有阻塞就无法做其他事情。这就是传统IO的阻塞问题。 非阻塞式: 添加了选择器,将每个通道注册到该选择器上,(原创 2017-05-28 18:30:30 · 527 阅读 · 0 评论 -
modCount
modCount有什么用在ArrayList,LinkedList,HashMap等等的内部实现增,删,改中我们总能看到modCount的身影,modCount字面意思就是修改次数,所有使用modCount属性的全是线程不安全的,而且只有在本数据结构对应迭代器中才使用。 在源码中:private class Itr implements Iterator<E> { int curs原创 2017-04-27 16:12:56 · 528 阅读 · 0 评论 -
原子变量和CAS算法简单介绍
原子变量和CAS算法简单介绍首先我们介绍一下i++的原子性问题 i++的操作实际上是 int temp = i; i= i+1; i= temp;我们以i++为例public class TestAtomDemo { public static void main(String[] args) { AtomDemo atomDemo = new AtomDemo();原创 2017-06-28 22:10:08 · 465 阅读 · 0 评论 -
Scanner 类抛出java.util.NoSuchElementException
Scanner 类抛出java.util.NoSuchElementException当我使用了Scanner之后将其关闭,下次调用会抛出java.util.NoSuchElementExceptionpublic class Test { public static void main(String[] args) { new Test().test(); n原创 2017-06-22 11:16:44 · 3997 阅读 · 1 评论 -
简单的订票系统
简单的订票系统1.简介好久没写博客了,最近使用java swing,写了一个简单的订票系统。 话不多说先附上源码地址在我的SCDN资源页上也有详细的文档说明和项目介绍,项目视频等详细信息github项目地址 https://github.com/zhaojianyin/ticketCSDN下载地址 http://download.csdn.net/detail/zhaojianyin/9899原创 2017-07-14 16:50:38 · 1443 阅读 · 0 评论 -
java反射
java反射反射机制是什么:反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。机制的优点和缺点: 为什么要用反射机制?直接创建对象不就可以了吗,这就涉及到了动态与静态的概念, 关于动态加载:Class.forname(“类全名”); 动态加载原创 2017-04-05 16:22:02 · 346 阅读 · 0 评论 -
MyEclipse启动本地Tomcat出错:Cannot change deployment state from ERROR to REDEPLOYING.
错误:Cannot change deployment state from ERROR to REDEPLOYING.解决办法:右击“项目名” –> MyEclipse –> Add and remove project deployments,然后在Server选项卡里删除出错的项目,重新部署即可原创 2016-12-01 10:41:42 · 436 阅读 · 0 评论 -
Joiner
文章目录JoinerJoinerGoogle Guava提供了Joiner类专门用来连接String。String数组,里面有"a",“b”,“c”,我们可以通过使用StringBuilder来创建String "a,b,c"也可以传入list,set//result = "a;b;c"result = Joiner joiner = Joiner.on(";").joiner.joi...原创 2018-10-19 11:16:00 · 4458 阅读 · 0 评论 -
ArrayList源码分析(JDK1.8)
ArrayList源码分析1.继承结构public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable说明:ArrayList继承AbstractList抽象父类,实现了List接口(规定了List的操作规范)、Rand原创 2017-04-26 16:37:24 · 371 阅读 · 0 评论 -
Nio简单介绍,本地操作,通道,缓冲区的简单使用,编码和解码
关于NIO简介javaNIO 是java1.4引入的新的IO API,可以替代java io API ,NIO和IO有同样的作用和目的,但是使用方式不同。NIO支持面向缓冲区的,基本的通道IO操作,NIO将以更加高效的方式进行文件的读写操作。NIO和传统的IO的区别 NIO IO 面向缓冲区(Buffer) 面向流(stream) 非阻塞 阻塞 选择器 无IO可以看作是原创 2017-05-27 11:11:14 · 631 阅读 · 0 评论 -
java线程同步简单介绍
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性1.同步方法 即有synchronized关键字修饰的方法。 由于ja原创 2016-12-03 13:55:10 · 279 阅读 · 0 评论 -
java学习第一步
java学习第一步,java知识点总结1.String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。8大是数据类型java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类。//说到StringBuffer那原创 2016-11-14 16:24:59 · 424 阅读 · 0 评论 -
java学习基础
1.接口和抽象类的区别是什么? Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。类可以实现很多个接口,但是只能继承一个抽象类类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。抽象类可以在不提供接口方原创 2016-12-05 08:29:04 · 347 阅读 · 0 评论 -
词法分析java
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-03-28 15:10:26 · 2138 阅读 · 0 评论 -
关于java注解
关于java注解学习注解的目的:读懂别人代码,特别是框架代码让编程更加简洁,代码更清晰概念:也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释JDK当中的注解:@override@Deprecated @Suppvisewarningspu原创 2017-04-05 08:49:49 · 254 阅读 · 0 评论 -
hasmap源码分析(jdk1.8)
hasmap源码分析(jdk1.8)看了源码,也看了好多关于hasmap源码分析的博客,总结一下。在JDK1.6中,HashMap采用数组(位桶)+链表实现即使用链表处理冲突,同一hash值的数据都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组(位桶)+链表+红黑树实现,当链表长度超过阈值(8)时原创 2017-04-29 21:39:55 · 625 阅读 · 0 评论 -
java单元测试Junit4
Junit4junit4快速入门 1.新建一个Calculate 类public class Calculate { public int add(int a,int b){ return a+b; } public int sub(int a ,int b){ return a-b; } public int mul(int原创 2017-04-21 22:10:47 · 544 阅读 · 0 评论 -
关于线程volatile关键字
volatile关键字1.示例介绍。public class TestVolite { public static void main(String[] args) { ThreadDemo demo = new ThreadDemo(); new Thread(demo).start(); while (true) {原创 2017-05-26 11:24:34 · 366 阅读 · 0 评论 -
gitignore文件不生效解决办法
git忽略规则以及.gitignore文件不生效解决办法在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如果没有这个文件,则需自己手工建立此文件) #此为注释.sample # 忽略所有 .sample 结尾的文件!lib.sample # 但 lib.sample 除外/TODO # 仅仅忽略项目根目...原创 2019-08-06 14:35:05 · 933 阅读 · 0 评论