Java SE
文章平均质量分 92
aronykl
这个作者很懒,什么都没留下…
展开
-
JavaSE基本框架的编写程序
一、创建一个最简单的空框架:import javax.swing.*;public class SimpleFrameTest {public static void main(String[] args){//新建一个简单框架的实例SimpleFrame frame = new SimpleFrame();//使用 System exit 方法退出应用程序原创 2013-08-29 21:32:29 · 751 阅读 · 0 评论 -
JDK集合源码分析系列(二)——LinkedList
一、概述LinkedList底层是基于链表来实现的一种集合。优点 在于基于链表实现,插入 和删除性能很高,不会像ArrayList那样会产生大量的元素移动。缺点 是随机取一个元素时,需要进行链表遍历,性能相对较差些。二、源码分析1. 属性值介绍 transient int size = 0; /** * Pointer to first node. ...原创 2018-12-10 23:06:50 · 212 阅读 · 0 评论 -
JDK集合源码分析系列(一)——ArrayList
一、概述ArrayList是我们日常开发中最常用的一种集合,原理就是底层是基于数组来实现了。优点:因为是基于数组来实现,所以随机读会很快,list.get(2),list.get(20)这种的会很快,直接可以通过内存地址定位某个元素。缺点:因为Java里的数组是定长的,因此不断的往list里面添加数据的时候,最后就会导致原来的数据容纳不下了,需要一个更大的数据来容纳元素。扩容时需要进行数组的...原创 2018-12-10 22:43:34 · 230 阅读 · 0 评论 -
JDK集合源码分析系列(四)——LinkedHashMap
一、概述LinkedHashMap其实是HashMap的一个子类,实现原理其实跟HashMap类似。只不过LinkedHashMap会记录插入key-value的顺序,并且在遍历的时候,会按照插入key-value对的顺序遍历出来。LinkedHashMap底层是基于双向链表来实现的,底层就是双向链表来记录元素添加的顺序的。二、源码分析先看下LinkedHashMap类有哪些属性: ...原创 2018-12-12 21:33:59 · 284 阅读 · 0 评论 -
Java 传统IO和NIO
一、简介java传统I/0中一个核心的概念是流(Stream),是面向流的编程。而且数据的传输是以字节为单位的。这一块相信大家相对会比较熟悉,就不做详细介绍了。java传统的I/O又叫做阻塞的I/O,这只要是相对于网络编程来说的。java 在1.4引入了NIO。NIO中拥有3个核心概念:Selector,Channel与Buffer。而与传统I/O不同的是,NIO是面向块来编程的,也就是数据的...原创 2018-10-06 23:51:33 · 662 阅读 · 0 评论 -
Java线程池的运行原理以及使用详解
一、 为什么要使用线程池在一些需要使用线程去处理任务的业务场景中,如果每一个任务都创建一个线程去处理,任务处理完过后,把这个线程销毁,这样会产生大量的线程创建,销毁的资源开销。使用线程池能有效的控制这种线程的创建和销毁,而且能够对创建的线程进行有效的管理。二、Java线程池相关的API介绍1. Executor接口主要是用来执行提交的任务。下面是接口定义:public in...原创 2018-05-13 13:23:56 · 8466 阅读 · 1 评论 -
java反射
什么是java的反射机制:Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。这种“看透class”的能力(the ability of the program to examine itself)被称为introspection(内省、内观、反省)。Reflection和intr原创 2015-05-13 01:41:04 · 317 阅读 · 0 评论 -
Java中的Map List Set等集合类
Map List Set等集合类:一、概述在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:+Collection 这个接口extends自 --java.lang.Iterable接口 ├+List(接口 代表有序,可重复的集合。列表) │├ ArreyList (Class 数组,随机访问,没有同转载 2014-11-22 21:49:25 · 485 阅读 · 0 评论 -
上篇的题目使用TreeMap来实现
package test;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Random;i原创 2014-11-23 15:50:20 · 731 阅读 · 0 评论 -
使用集合操作,随机生成50个数字(整数),每个数字的范围是[10,50],统计出现次数最多的数字及其个数,并将每个数字机器出现的次数打印出来,打印是按照数字的升序排列
package test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Random;import java.util.Set;import java.util.TreeSet;/** * 使用集合操作(不能使用数组) * 随机生成50个数字(整原创 2014-11-23 15:02:15 · 3677 阅读 · 0 评论 -
关于TreeSet内添加具体的自定义对象的排序
TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列原创 2014-11-22 20:13:01 · 2780 阅读 · 0 评论 -
JDK集合源码分析系列(三)——HashMap
一、概述HashMap主要是用来存储key-value对的,HashMap中的key必须是唯一的。那么HashMap底层是怎么实现的呢?二、源码分析这里说明下,以下源码分析都是基于jdk1.8的。jdk1.8以前,HashMap的实现跟Jdk1.8有所不同,1.8以前底层使用的是数组+链表的形式,1.8做了改进,如果链表比较长(链表长度大于8),就会把链表转换为红黑树,来增加查找的性能。 ...原创 2018-12-11 23:33:49 · 280 阅读 · 0 评论