java基础
文章平均质量分 71
ignorewho
笑你我枉花光心计 爱竞逐镜花那美丽
展开
-
JAVA-NIO之FileChannel
FileChannel:连接到文件的通道,通过该通道读写文件获取FileChannel1、通过InputStream/OutputStream获取,读写是单向的2、通过RandomAccessFile获取,读写是双向的支持通道间数据传输1、transferTo/transferFrom两个方法常用方法1、close:关闭通道2、postion:获取通道当前位置,也可以通过position(inde...原创 2018-05-25 17:25:46 · 155 阅读 · 0 评论 -
开发工具-startUml及常用图定义
安装https://docs.staruml.io破解https://blog.csdn.net/wdd1324/article/details/81671826常用图定义类图Dependency:依赖关系,有多种表现形式,友元/绑定,比如A类使用到B类的私有变量,这时可以用这种关系连接Association:关联关系,语义较弱Aggregation:聚合关系,指明一个整体和部分之...原创 2019-05-25 11:19:34 · 798 阅读 · 0 评论 -
map转换成JSON的3种方法
https://blog.csdn.net/q975583865/article/details/72722364转载 2018-08-09 20:39:24 · 6654 阅读 · 0 评论 -
HashMap源码-containsKey方法
环境:jdk1.8containsKey方法源码如下://传入参数:key值public boolean containsKey(Object key) { //调用核心方法getNode,判断是否存在对应节点 return getNode(hash(key), key) != null;}getNode方法源码如下://传入参数:1.根据key散列计算得到的哈希值 2.key值fin...原创 2018-06-17 14:24:07 · 2729 阅读 · 0 评论 -
JAVA-对java跨平台一些总结
java如何实现跨平台?1.javac编译器将源码即.java文件编译成字节码文件即.class文件2.java虚拟机即jvm解释器将.class文件解释成特定平台的二进制目标代码3.其中jvm解释器相当于起到了适配器的作用什么是字节码文件?1.javac编译器经过词法分析、语法分析到抽象语法树,再遍历语法树生成线性的字节码指令文件2.本身是二进制文件,与平台无关3.不能被系统直接执行,需要虚拟机...原创 2018-06-22 17:48:46 · 145 阅读 · 0 评论 -
JAVA-日历Calendar小结
概念:Calendar是日历的意思,区别于Date,Date是一个绝对时间,而Calendar是对时间的一种描述方式,不同国家、不同地区描述方式不同获取Calendar实例的四种方式的区别1.getInstance():使用默认的时区、默认的位置创建实例2.getInstance(TimeZone zone):使用指定的时区、默认的位置创建实例3.getInstance(Locale aLocal...原创 2018-06-22 11:34:01 · 9598 阅读 · 0 评论 -
JAVA-反射机制
反射概念:1.在运行期jvm可以对一个类洞悉它的属性和方法,对任意一个对象都能访问它的属性和方法2.依靠这种机制,可以动态创建一个类的对象和调用对象的方法反射常用的API:1.获取class对象:class.forname(完整类名)2.获取构造方法:class对象.getConstructor3.获取类的方法:getMethod和getMethods4.创建一个对象实例:class对象.newI...原创 2018-05-30 21:04:50 · 119 阅读 · 0 评论 -
JAVA内存模型-内存分配策略
1.对象优先在Eden区分配内存:当Eden区没有足够内存分配时,会触发一次Minor GC,采用复制算法进行垃圾回收2.大对象直接进入老年代,比较典型的比如比较长的字符串以及数组,虚拟机提供一个参数来做配置-xx:pretenureSizeThreshold3.长期存活的对象进入老年代:虚拟机为每个对象定义了一个年龄计数器,从Eden移入Survivor区的对象年龄值设为1,以后每发生一次Min...原创 2018-05-24 17:57:35 · 304 阅读 · 0 评论 -
JAVA-类的加载过程
类加载分为三个部分:1.加载2.链接 可以细化为:验证、准备、解析3.初始化加载:把class字节码文件通过类加载器装载入内存中重点:字节码来源:本地路径下编译的class文件,jar包中的class文件,通过网络远程获取的class文件,动态代理实时编译的class文件类加载器:启动类加载器(bootstrap ClassLoader):负责加载JAVA_HOME/lib目录下能被虚拟机识别的j...翻译 2018-05-24 17:54:29 · 136 阅读 · 0 评论 -
JAVA-类的实例化过程
1.初始化父类静态变量、静态代码块(静态变量和静态代码块的初始化顺序由编写顺序决定)2.初始化子类静态变量、静态代码块(静态变量和静态代码块的初始化顺序由编写顺序决定)3.初始化父类非静态变量、非静态代码块(非静态变量和非静态代码块的初始化顺序由编写顺序决定)4.初始化父类构造函数 .5.初始化子类非静态变量、非静态代码块(非静态变量和非静态代码块的初始化顺序由编写顺序决定)6.初始化子类构造函数...原创 2018-05-24 17:53:19 · 921 阅读 · 0 评论 -
JAVA-不同类型Set比较
1.HashSet的值不能重复且乱序排列,可以存储null值。它的内部维护了一个HashMap,添加的值作为HashMap的key进行插入,所以保证了它的这些特性。2.LinkedHashSet保证了插入有序,它继承了HashSet类,通过调用HashSet的一个构造方法,创建一个LinkedHashMap对象以此通过LinkedHashMap来保证插入有序。3.TreeSet保证了字典有序排列,...原创 2018-05-24 17:52:02 · 938 阅读 · 0 评论 -
JAVA-中英文字符编码集
英文字母和中文汉字在不同字符集编码下的字节数英文字母:字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE 中文汉字:字节数 : 2;编码:GB2312字节数 : 2;编...原创 2018-05-24 17:49:56 · 928 阅读 · 0 评论 -
JAVA-静态代理和动态代理
静态代理:在代码中显示地实现一个业务实现类的指定代理,在代理类中对同名的业务方法进行包装,用户通过代理类调用被包装过的业务方法缺点:一个代理类只能对一个业务接口的实现类进行包装,如果有多个业务接口的话就要定义很多类和代理类动态代理:在运行期间根据需要动态地创建代理对象jdk动态代理原理:是针对接口来实现代理的,被代理类必须是实现有接口的,每个动态代理类都要实现InvocationHandler这个...原创 2018-05-24 17:44:47 · 159 阅读 · 0 评论 -
JAVA-NIO之Buffer
Buffer属于java nio包下,是一个抽象类支持如下Buffer类型:ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer、ShortBuffer有三个重要参数:capacity:内存固定大小值position:写模式下,position最大为capacity-1,切换到读模式下,position被重置为0li...原创 2018-05-25 17:47:18 · 228 阅读 · 0 评论 -
JAVA-NIO之Selector
选择器:能够检测多个NIO通道,能够知晓通道是否为读写连接等事件做好准备,单线程下可以管理多个Channel使用Selector的优点:1.创建较少线程来处理多个Channel,可以减少上下文切换的开销使用过程:1、Selector创建:Selector.open()2、向Selector注册Channel:channel.regist(selector,SelectKey.操作),注意,chan...原创 2018-05-25 17:43:56 · 131 阅读 · 0 评论 -
JAVA-NIO之SocketChannel
SocketChannel:基于tcp网络套接字的通道创建方式1、打开一个SocketChannel并连接到服务器2、一个新连接到达ServerSocketChannel时,创建一个SocketChannel非阻塞模式下1、connect():调用该方法可能在连接建立之前就返回值了,需要通过finishConnect()进一步判断2、write():调用该方法可能在未写入数据前就返回了,需要在循环...原创 2018-05-25 17:26:35 · 248 阅读 · 0 评论 -
CRUD常用技巧
CRUDCRUD简述插入查询模糊查询分页查询多字段排序修改批量修改多字段修改删除CRUD简述写业务代码我们免不了会一直围绕着CRUD转,这是基础,也是根本,把CRUD做好了也是一件不简单的事情,让我们扎扎实实地去做好这件事。插入我们常用的是mybatis批量插入:insert into test_table (`name`,`age`) values <foreach c...原创 2019-08-03 17:28:47 · 490 阅读 · 0 评论