javahigh
java 高级特性
IMYEDLL
这个作者很懒,什么都没留下…
展开
-
File 文件类
1.表示目录和文件的类 2.是java中IO流的基础类 3.常用方法: 1.有参构造方法:File(String pathname) pathname可以填绝对路径或相对路径 File file = new File("D:\\test\\hello.txt"); File file1 = new File("test.txt"); 2.isFile():判断是否是文件 System....原创 2019-12-17 20:13:30 · 113 阅读 · 0 评论 -
java 强软弱虚引用
在jdk1.2之后,java对引用的概念进行了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)四种,这四种引用强度依次逐渐减弱。 一、强引用 强引用就是指在程序代码之中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用还存...原创 2019-12-16 17:50:35 · 106 阅读 · 0 评论 -
LocalDateTime
LocalDateTime\LocalDate\LocalTime 1.jdk1.8+ 2.Date和Calendar类都在java.util包下,新日期类在java.time包下 3.内部有一个私有的有参构造,不能new对象 4.常用方法 1.now():获取当前时间 2.of(int year, Month month, int dayOfMonth, int Hour, int minut...原创 2019-12-13 13:43:59 · 320 阅读 · 0 评论 -
SimpleDateFormat
1.是DateFormat的子类 2.使用构造方法创建对象 1.无参构造创建对象和DateFormat.getInstance()获取的实例格式一样 2.一般使用有参构造自定义格式 yyyy 年 MM 月 dd 日 HH 时(hh 十二小时制) mm 分 ss 秒 SSS 毫秒 ...原创 2019-12-13 11:45:42 · 107 阅读 · 0 评论 -
DateFormat
1.是一个抽象类,有子类SimpleDateFormat 2.使用getInstance()系方法获取实例 不同的实例格式化风格不一样: getInstance(): 19-12-11 下午5:20 getDateInstance(): 2019-12-11 getTimeInstance(): 17:20:37 3.常用方法 format(Date date):将日期对象格式化成字符串 p...原创 2019-12-13 11:01:26 · 135 阅读 · 0 评论 -
Calendar
1.是一个抽象类,有一个实现类GregorianCalendar 2.通过Calendar.getInstance()获取单例对象 3.和时间相关的常量: 详见代码 4.常用方法: 1.get(int field):返回指定日历的字段值 2.set(int field, int value):设置指定字段的值 3.add(int field, int amount):修改指定字段的值 publ...原创 2019-12-13 10:58:52 · 102 阅读 · 0 评论 -
Date
1.表示瞬时时间,就是时间的偏移量 2.几个通用时间 1.CST:中国标准时间 2.UTC:协调世界时 3.GMT:世界时(格林威治时间) 3.java中时间的起点 1970-1-1 0:0:0.000 4.常用方法 1.获取当前时间 Date date = new Date() 2.获取当前时间偏移量(时间起点至今的毫秒值) long time = date.getTime(); 3....原创 2019-12-13 10:54:29 · 123 阅读 · 0 评论 -
Random 类
1.常用方法 1.构造方法:Random()/Random(Long seed) 2.next系列方法:nextInt()/nextInt(int bound) 2.注意事项 1.使用无参构造。默认使用当前时间作为随机数种子 2.如果使用有参构造,将使用指定种子 3.多个Random对象,如果使用的种子相同,获得随机数也相同 public class Demo05Random { ...原创 2019-12-13 10:44:08 · 119 阅读 · 0 评论 -
Math 工具类
1.工具类,包含用于执行基本数学运算的方法 2.常量: E:自然数的底数 PI:圆周率 3.常用方法: 1.abs(double d):取绝对值 2.pow(double a , double b):求 a 的 b 次幂 3.max(double a , double b):求较大值 4.min(double a , double b):求较小值 5.random():获取[0, 1)的浮点...原创 2019-12-13 10:40:50 · 236 阅读 · 0 评论 -
UUID
1.定义:通用唯一识别码,是用于计算机体系中以识别信息数目的128位标识符 2.常用方法: 1.randomUUID():获取一个随机的UUID 2.toString() public class Demo03UUID { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); ...原创 2019-12-13 10:37:46 · 72 阅读 · 0 评论 -
字符串常量池
1.存在于堆中 2.使用字符串优化的方式创建字符串对象(String str = “hello world”),这个字符串对象会存放在字符串常量池 3.再次使用字符串优化的方式创建对象,会先检查字符串常量池中是否已经存在相同对象,如果存在, 指向同一个对象,不再创建新对象 public class Demo02StringPool { @Test public void test...原创 2019-12-13 10:36:17 · 132 阅读 · 0 评论 -
StringBuffer/StringBuilder
1、字符串缓冲区\字符串建造者,存放了一个String(char数组),但是可以修改(没有被final修饰) 2、Buffer是线程安全的,Builder是线程不安全的 3、常用方法: 1.构造方法:StringBuilder()/StringBuilder(String str) 2.append(String str):在字符串缓冲区后追加一个字符串 3.toString():将String...原创 2019-12-13 09:49:55 · 93 阅读 · 0 评论 -
枚举
一、枚举 jdk1.5+ 使用它来汇总一些来表示同类含义的常量 枚举是引用数据类型,枚举类型的属性,赋值只能是枚举中声明过的常量 注意两个方法:name() ordinal() 使用方式 1.在枚举中声明多个常量,用逗号分隔 枚举作为引用数据类型,只能使用声明过的常量作为数据的值 2.可以在枚举中声明私有属性、私有构造方法、getters/setters方法 构造方法是私有的,只能在枚举内...原创 2019-12-09 16:02:38 · 186 阅读 · 0 评论 -
泛型
一、定义 广泛的数据类型,定义一种不确定的数据类型 二、使用方式 1.将泛型定义在类上 在创建该类对象时可以指定泛型指代的数据类型 在这个类内部任意声明中都可以使用指代的数据类型 package org.jgs1904.testClass; /** * @ClassName Class01 * @Description 测试泛型类 * @Author RenYuWen * @Si...原创 2019-12-09 15:03:39 · 88 阅读 · 0 评论 -
Properties
一、特征 继承于Hashtable 可以作为配置信息的存储容器,也可以加载配置文件中的配置信息 线程同步的,多线程使用安全 二、常用方法 setProperty(String key, String value) getProperty(String key) getProperty(String key, String defaultValue) load(InputStre...原创 2019-12-08 14:35:24 · 70 阅读 · 0 评论 -
Hashtable
特征 底层数据结构:数据 + 单链表 默认的容量是11,加载因子是0.75 当存储的个数达到容量的0.75时,扩展为原容量的 2倍+1 无序,key唯一的,value可重复,key和value都不可以为null 线程同步的,多线程使用安全,单线程使用效率低 ...原创 2019-12-08 14:29:37 · 57 阅读 · 0 评论 -
TreeMap
特征 数据结构是红黑二叉树 无序,key唯一,key和value都可以为null 可排序的,存入的元素需要经过排序(元素具有排序能力或容器具有排序能力) 线程不同步的,多线程使用不安全 ...原创 2019-12-08 14:22:50 · 73 阅读 · 0 评论 -
LinkedHashMap
特征 底层实现和HashMap类同,数据结构是链表 有序,key唯一,value唯一,key和value都可以为null Demo public class Demo01LinkedHashMap { public static void main(String[] args) { LinkedHashMap<String, String> map ...原创 2019-12-08 14:19:02 · 86 阅读 · 0 评论 -
集合框架
集合框架:容器框架、容器类 1.定义 可以存放一系列基本数据类型数据或者引用数据类型对象的对象。 2.分类: 1.数组: 特性: 1.在内存中,连续的固定长度的空间。 2.存储相同数据类型的数据。 3.有索引,从0开始,不能越界。 4.查找较快,插入和删除较慢。 2.List ArrayList**、LinkedList*、Vector、Stack 特征:有序的、不唯一的、可为null、...原创 2019-12-05 19:54:14 · 136 阅读 · 0 评论 -
HashMap
一、特征 1.数据结构 jdk1.8之前:数组 + 单链表 jdk1.8之后:数组 + 单链表 + 红黑二叉树(提高查询效率) 2.初始容量是16,加载因子是0.75 3.当存放的元素个数达到容量的0.75时,扩容为原容量的2倍 4.容量上限 1 << 30 5.其他常量: TREEIFY_THRESHOLD = 8 当map容量到达8的时候,数据结构由单链表转为红黑...原创 2019-12-05 19:46:28 · 84 阅读 · 0 评论 -
TreeSet
特征 1、底层实现是TreeMap, 数据结构是二叉树 2、不保证顺序,但是可以自定义排序、唯一,可为null 3、线程不同步,多线程使用不安全 4、TreeSet集合只能存储可排序的对象 5、如何实现排序 让元素具有排序功能 元素类实现Comparable接口,重写CompareTo方法 1.在元素被添加进容器时,会调用compareTo方法和已经存在的元素进行比较 2.如果返回的int值是...原创 2019-12-05 19:41:21 · 117 阅读 · 0 评论 -
LinkedHashSet
一、特征 1、继承了HashSet类,底层实现HashMap,数据结构是链表 2.保证顺序、唯一、可以为null 3.查找较慢、插入删除较快 4.线程不同步、多线程使用不安全 如果要实现同步的set Set set = Collections.synchronized(new LinkedHashSet(…)); 二、常用方法 参考HashSet 三、测试代码 public cla...原创 2019-12-05 19:35:04 · 194 阅读 · 0 评论 -
HashSet
一、特征 1.底层实现是HashMap的 key 2.默认初始化容量是16。默认的加载因子是0.75 3.当村存储的数据到达原容量的0.75时,扩容为原容量的2倍 4.不保证顺序、唯一、可以为null、无索引 5.查找较慢、插入删除较快 6.线程不同步的,多线程使用不安全 如果要实现同步 Set set = Collections.synchronizedSet(new Ha...原创 2019-12-05 19:31:36 · 124 阅读 · 0 评论 -
Vector
一、特征 1.底层实现是数组,数据结构是线性表 2.默认容量10 3.默认扩容为原容量的2倍 4.有序的、不唯一、可为null、有索引(会越界) 5.查找较快,插入删除较慢 6.线程同步的,多线程使用安全的。单线程使用效率较低 二、常用方法 参考ArrayList ArrayList ...原创 2019-12-05 19:24:11 · 73 阅读 · 0 评论 -
LinkedList
一、特征 1.底层实现是node节点,数据结构是双向链表,也可以作为队列(先进先出),栈(先进后出) 2.没有扩容概念 3.有序的、不唯一、可为null、有索引 4.查找较慢、插入删除较快 5.线程不同步的、多线程不安全的 如果要同步的LinkedList List list = Collections.synchronizedList(new LinkedList(…)); ...原创 2019-12-05 19:20:40 · 91 阅读 · 0 评论 -
ArrayList
特征 1、底层实现是数组,数据 结构是线性表(连续的元素、连续的存储空间、有首有尾、互相连接) 2、jdk1.8之前初始容量是10, jdk1.8之后初始容量是0(在存入第一个元素的时候,容量为10) 3、扩容为原容量的1.5倍(参考方法grow) 4、有序的,不唯一,可为null, 有索引(会越界) 5、查找较快,插入删除较慢 6、线程不同步、多线程使用不安全 如果要同步: List li...原创 2019-12-03 14:46:43 · 110 阅读 · 0 评论