![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
要做大魔王
莫听穿林打叶声, 何妨吟啸且徐行。竹杖芒鞋轻胜马, 谁怕?一蓑烟雨任平生。料峭春风吹酒醒, 山头斜照却相迎。 回首向来萧瑟处, 归去, 也无风雨也无晴。
展开
-
Java NIO.2 之Paths和Path
一、简介Path是java.nio.file下的接口, 表示一个与平台无关的路径或者用于定位一个文件。它的功能与File有颇多相似的地方, 并且Path可以通过File toFile()方法返回一个File对象。二、Paths这个类的作用就是返回一个Path对象, 并且它只有2个静态方法。-public static Path get(String first, String… more)...原创 2019-10-23 10:45:59 · 575 阅读 · 0 评论 -
Java之对象序列化
一、简介对象序列化的目的是将对象保存到磁盘, 或者允许在网络中传输。相对的, 反序列化就是根据磁盘中保存的文件恢复对象。要让某个类的对象能够序列化, 需要实现下面2个接口之一:-Serializable-Externalizable二、对象流实现序列化通过实现Serializable接口让一个类的对象可序列化的步骤十分简单, 仅仅是在声明一个类时声明实现该接口即可, 无需实现任何方法...原创 2019-10-16 22:16:32 · 434 阅读 · 0 评论 -
Java之IO流
Java 1.0 & 1.1 对应的IO流1.0版本1.1版本InputStreamReader converter: InputStreamReaderOutputStreamWrite rconverter: OutputStreamWriterFileInputStreamFileReaderFileOutputStreamFileWr...原创 2019-10-15 12:26:15 · 181 阅读 · 0 评论 -
Java之treeSet
文章目录一、底层数据结构public TreeSet() { this(new TreeMap<E,Object>()); }该数据结构是基于treeMap实现的二、方法思维导图三、部分方法源代码1.add(E e)(1) 将参数放入二叉排序树中// 部分方法源码// 查找插入的位置do { parent = t; ...原创 2019-09-15 22:31:03 · 139 阅读 · 0 评论 -
java之HashMap
put方法HashMap添加元素的大致思路:1.计算元素在table中的索引index2.创建新元素Entry3.table[index] = EntryHashMap在存储元素前已经计算好存储的位置.若该位置已存在元素且hash相同, 则修改value.public V put(K key, V value) { if (table == EMPTY_TABLE) ...原创 2019-09-19 09:19:59 · 296 阅读 · 0 评论 -
Java之LinkedHashMap
文章目录一、底层数据结构二、部分方法源码1.构造方法2.put方法2.1 recordAccess——修改集合元素顺序2.2 addEntry & createEntry3.Iterator4. containsValue(Object value)一、底层数据结构根据类名定义public class LinkedHashMap<K,V> extends HashMap&l...原创 2019-09-19 09:49:25 · 288 阅读 · 0 评论 -
Java之内部类
文章目录为什么使用?一、简介二、分类三、非静态内部类定义示例四、静态内部类示例——注意与非静态内部类调用区别五、匿名内部类示例六、总结何时使用内部类?使用何种内部类?毫无疑问, 内部类是定义在类内部的。也就是说, 它既是一个类, 也是一个类的成员。为什么使用?通常我们会在类中定义引用类型变量, 相当于借用其它类的功能来辅助本类的功能实现。 既然我们可以借用它类的实现, 为什么还要在类内部来定...原创 2019-09-20 16:55:11 · 143 阅读 · 0 评论 -
Java之初始化语句执行顺序
文章目录一、非继承状态下1.无静态变量2.只存在静态变量3.成员变量与静态变量同时存在二、继承情况下当我们执行className object = new ClassName()时候代码执行的顺序为何?一、非继承状态下1.无静态变量1.1——public class OrderTest { public OrderTest(){ System.out.print...原创 2019-09-21 22:54:59 · 960 阅读 · 1 评论 -
Java之Integer
文章目录一、方法思维导图二、部分方法源码valueOf(int i)parseInt(String s)一、方法思维导图Integer主要包含: 类型转换、二进制数操作。二、部分方法源码valueOf(int i)// jdk 1.7public static Integer valueOf(int i) { assert IntegerCache.high >...原创 2019-09-29 19:40:09 · 138 阅读 · 0 评论 -
Java之浮点型
文章目录一、介绍内容二、类型定义三、表示形式四、特殊值五、该用哪一种一、介绍内容二、类型有2种浮点类型: float 和 double. float的有效数字为8位, double为16位.定义在默认情况下, 小数为double类型。譬如0.13若要指定类型, 在数字后加上字母区别。float类型使用f或F.float f = 1.1234567F;float f1 = 1...原创 2019-09-30 10:06:35 · 166 阅读 · 0 评论 -
Java之字符集简单理解
什么是字符集?字符的集合什么是unicode字符集?是字符的一种编码方示, 为每个字符指定了一个唯一的二进制编码, 简而言之, 就是为每个字符编号。Unicode通常用两个字节表示一个字符。什么是UTF-8编码?是unicode字符集的一种实现, UTF-8使用可变长度字节来储存 Unicode字符, 使用1~4字节为每个字符编码。ASCIl字符只需1字节编码(Unicode范围由U...原创 2019-10-01 17:46:13 · 365 阅读 · 0 评论 -
Java之String
一、底层实现private final char value[];String类型是基于字符数组实现的。二、方法思维导图三、方法源码展示1.int length()length是最常用到的方法, 它通常用于计算String的长度。看看注释:The length is equal to the number of Unicode code units in the string....原创 2019-10-04 10:38:47 · 211 阅读 · 0 评论 -
Java之Class
简介每个类被加载之后, 系统会为该类生成一个Class对象, 通过该Class对象就可以访问到JVM中的这个类。一旦获得某个类的Class对象, 程序就可以调用Class对象的方法来获得该类对象和该类的真实信息。Class的理解类是对对象的描述。Class类就是对类的描述。就类似于概念用于描述、定义事物。但是概念本身也需要被描述的。作用Class类的对象作用是运行时提供或获得某个对象...原创 2019-10-06 17:15:45 · 182 阅读 · 0 评论 -
Java之类加载器
文章目录简介加载器加载策略自定义类加载器简介 类加载器负责将class文件读入内存, 系统为载入内存的类创建对应的Class对象。类加载器通常由JVM提供, JVM提供的加载器通常被称为系统类加载器。此外, 开发者可以通过继承ClassLoader来实现自己的类加载器。加载器类加载器的层次结构:Bootstrap ClassLoader: 根类加载器Extension ClassL...原创 2019-10-08 09:06:21 · 178 阅读 · 0 评论 -
Java之反射
文章目录一、简介二、使用反射生成并操纵对象1、创建对象2、调用方法3、访问成员变量3.1、获取成员变量3.2、设置成员变量的值3.3 取消访问权限检查4、创建数组一、简介 java反射机制是指, 在运行状态时, 对于任意一个类, 都能够知道它的所有属性和方法; 对于任意一个对象, 都能够调用它的方法和访问它的属性。这种动态获取信息以及调用对象方法的功能被称为反射机制。 反射机制的基本...原创 2019-10-09 09:04:06 · 173 阅读 · 0 评论 -
Java之ArrayDeque
文章目录一、底层数据结构一、底层数据结构// 构造方法public ArrayDeque() { elements = (E[]) new Object[16]; }该队列是基于数组实现的.二、方法思维导图三、 部分方法的源代码1.addpublic boolean add(E e) { addLast(e); retur...原创 2019-09-15 09:47:59 · 376 阅读 · 0 评论 -
Java集合之迭代器(Iterator、ListIterator)
文章目录一、方法对比二、方法演示一、方法对比Iterator:1.单向遍历2.可在迭代过程中执行删除操作ListIterator:1.双向遍历2.可执行删除、添加、修改操作二、方法演示...原创 2019-09-15 09:35:41 · 322 阅读 · 0 评论 -
BigDecimal的使用
BigDecimal主要是处理Java浮点数计算精度丢失的问题.1. 方法介绍加、减、乘法的方法类似,区别于方法名。-加法:BigDecimal add(BigDecimal augend)BigDecimal add(BigDecimal augend, MathContext mc)-减法:BigDecimal subtract(BigDecimal subtrahend)Bi...原创 2019-08-20 11:59:52 · 423 阅读 · 0 评论 -
Int与Integer
1. 什么时候用int,什么时候用Integer在定义JavaBean的时候要使用Integer定义整形数据,这与数据库查询有关,当某个字段没有值的时候Integer会为null,而int会默认返回0....原创 2019-08-26 22:15:13 · 252 阅读 · 0 评论 -
个人对常量池的一点理解
首先我对虚拟机了解的不是很深, 说的不对请指正1.JVM内存分布2.常量池字符串(数字)字面量存在于常量池,常量池在class文件中,之后JVM会将常量池载入内存,并保存在方法区。tip1: 编译器生成class文件,那么常量池也是编译器生成的啦。tip2: 再复习下class文件与加载Java编译器编译Java文件之后产生.class 文件。class文件是二进制文件,内容是只有...原创 2019-08-26 23:42:39 · 143 阅读 · 0 评论 -
一些小陷阱
String a = "abc";String b = "abc";System.out.println("a == b" + a == b); 哈哈,第一感觉是不是打印a==btrue呢? 其实会打印false啦。update waitting…原创 2019-08-27 00:01:21 · 152 阅读 · 0 评论 -
通过反编译来了解String的生成
我们知道创建一个字符串有2种方法:1. String str = “abc”;2. String str1 = new String(“abc”);3. String str2 = “abc” + 字符串引用第一种是在常量池中创建并返回引用第二种是调用了String的构造方法并返回引用第三种是调用了StringBuilder的方法拼接下面我们通过反编译来了解吧~先上代码1...原创 2019-08-27 17:50:06 · 480 阅读 · 0 评论 -
Java源码之Arrays
简介Arrays主要是对数组类型操作。包括排序、查找元素、比较、复制、转化为List、获取hashCode、转为String类型。排序-sort1.排序后为升序2.数组元素类型为基本类型,可以调用对应的重载方法排序3.若数组元素类型为对象,在如下情况可以调用sort方法排序(1) 该类实现了 Comparable接口(2) 实现比较器接口Comparator—>Java ...原创 2019-08-31 14:28:33 · 173 阅读 · 0 评论 -
Java之Calendar基本使用
Calendar是一个日历类首先, 从类名定义可以看出它实现了Serializable, Cloneable, Comparable接口。And, 实现了Comparable就意味着可以使用Arrays.sort的方法对多个Calendar对象进行排序。class Calendar implements Serializable, Cloneable, Comparable<Calen...原创 2019-09-01 14:48:30 · 312 阅读 · 0 评论 -
Java之枚举
Fine, 我写这个是因为在读Calendar的时候发现对枚举类(enum)的使用不熟悉。使用原因清晰明了。例如枚举类SeasonEnum表示的季节,它的实例变量就都代表季节。与直接定义常量相比更容易区分。打印输出意义明确。若打印SEASON_SPRING就只打印一个数字。若使用枚举可根据枚举实例名打印出属性创建第一个枚举类public enum SeasonEnum { /...原创 2019-09-01 20:27:41 · 100 阅读 · 0 评论 -
Java之Collections使用
文章目录一、查询操作1.查找元素2.集合中最大/最小元素3.集合中的是否存在子集合4.集合中是否有相同的元素,没有返回true5.返回元素在集合中出现的次数二、修改集合结构1.对集合的元素排序2.反转集合元素顺序3.打乱集合顺序4.交换集合两个元素的顺序5.以指定元素填充集合6.集合元素移动7.以元素a替换集合所有的元素b8.添加指定元素到指定集合末尾三、返回新的集合/视图1.复制集合2.返回指定...原创 2019-09-03 14:19:44 · 841 阅读 · 0 评论 -
Java之泛型简单使用
Why we use:1.一旦使用泛型, 获取集合元素不再需要考虑类型强转了, 代码更加简洁。2.在编译期就能发现问题。3.让代码扩展性更强。注:从1.7开始构造器后面不需要带完整的泛型信息。 List<String> strList = new ArrayList<>(); 我直接从Collections的copy方法开始认识吧, 最后再解读该方法声明的含义...原创 2019-09-04 00:17:37 · 167 阅读 · 0 评论 -
Java之final
Fine, 要做关于fianl的笔记也是因为Calendar。原创 2019-09-04 10:52:25 · 116 阅读 · 0 评论 -
Java之Date
已经标注@Deprecated的方法我就不列了。一、获取Date对象public Date()public Date(long date)// 无参构造器源码public Date() { this(System.currentTimeMillis());}二、方法1.判断两个时间的先后public boolean before(Date when)public ...原创 2019-09-04 12:46:50 · 113 阅读 · 0 评论 -
Java之Formatters(字符串、时间类型格式化)
参考博文:Java 字符串格式化详解Formatter是一个对常规类型和时间类型格式化输出的类, String.format就是封装了对Formatter方法的调用, 所以本文也可以当做如何使用String.format。这里先展示字符串和时间日期的格式化,。一、常规类型格式化格式: %[argument_index$] [flags] [width] [.precision] conve...原创 2019-09-05 10:26:53 · 1204 阅读 · 0 评论 -
数据结构之链表
参考博文:Java数据结构和算法(七)——链表一、链表定义是一种链式存储结构, 数据在物理空间是分散存储的. 每个节点包含2部分, 存储的数据和指向下一个节点的地址.二、链表的种类1.单链表单链表特点:1.只能向一个方向遍历2.添加元素从头部插入, 若想向尾部插入元素, 必须遍历前n-1个节点 通过单向链表可实现栈, 添加节点和删除头节点对应栈的入栈和出栈新增节点实现思...原创 2019-09-08 08:14:32 · 163 阅读 · 0 评论 -
Java集合之LinkedList
底层数据结构原创 2019-09-08 10:23:17 · 103 阅读 · 0 评论 -
Java之使用动态代理笔记
考虑这样一个场景:假如你需要调用某个类的方法, 但是想在调用这个方法之前进行一些额外的操作, 那么可以考虑使用动态代理(下面说的是JDK动态代理).首先,构造一个简单的动态代理类需要以下3点:1.接口2.接口实现类3.InvocationHandler实现类例子// 接口public interface Star { void sing(); void dance...原创 2019-08-22 22:33:56 · 96 阅读 · 0 评论