![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
ReycoChou
这个作者很懒,什么都没留下…
展开
-
equals和hashcode
对于所有对象都通用的方法equals浅谈==和equals的区别先引入一段代码public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int n=3; int m=3; ...原创 2019-02-07 11:54:05 · 147 阅读 · 0 评论 -
String和StringBuffer,StringBuilder的区别
可变性上String字符串的本质,就是在String类内部维护了一个字符数组/** The value is used for character storage. */ private final char value[];并且这个数组被final修饰,因此String是不可变对象而StringBuffer和StringBuilder都继承于AbstractStringBuil...原创 2019-03-08 20:15:55 · 545 阅读 · 0 评论 -
深入了解File类
概述java.io.file类即文件和目录名的抽象表示形式。Java将电脑中的文件和文件夹封装成了一个File类,我们可以使用File类对文件和文件夹进行操作File下静态变量//与系统有关的路径分隔符//windos下为:分号//linux下为:冒号public static final char pathSeparatorChar = fs.getPathSeparator();...原创 2019-03-16 11:52:54 · 215 阅读 · 0 评论 -
IO流-初探IO
概述我们将数据的传输比作数据的流动,按照流动的方向,以内存为基准,即流向内存是输入流,流出内存为输出流。可以将Java对象当作第一人称,读取外部即为输入,写到外部即为输出根据数据的流向输入流:把数据从其他设备读取到内存中的流输出流:把数据从内存读取到其他设备上根据数据类型字节流:以字节为单位进行读写数据的流字符流:以字符为单元进行读写数据的流一个字节为8个二进制位–对应J...原创 2019-03-16 15:18:22 · 207 阅读 · 0 评论 -
深入IO流--高级IO
缓冲流缓冲流也叫高效流,是对4个基本的Filexxx流的增强,按照数据类型分类字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO的次数,从而提高读写的效率字节缓冲流构造方法...原创 2019-03-16 16:44:53 · 251 阅读 · 0 评论 -
Java中几种对象的理解
分层领域模型规约DO(Data Object):与数据库表结构一一对应,通过DAO层向上传输的数据源对象DTO(Data Transfer Object):数据传输对象,由Service或Manager向外传输的对象BO(Business Object):业务对象,由Service层输出的封装业务逻辑的对象,如果将单独的PO比作Sql中的一条语句,BO就像是一个事务包含了几个PO来满足业务...原创 2019-03-27 20:13:19 · 234 阅读 · 0 评论 -
Java基础知识
1.面向过程和面向对象的区别面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素时,比如单片机,嵌入式开发等一般采用面向过程开发缺点:没有面向对象易维护,易复用,易扩展面向对象优点:易维护,易复用,易扩展,由于面向对象有封装,继承,多态性的特性,可以设计低耦合的系统缺点:性能比面向过程低2.Java语言特点面向对象(封装...原创 2019-04-05 10:14:43 · 104 阅读 · 0 评论 -
Collections工具类和Arrays工具类常见方法
CollectionsCollections工具类常用方法:排序查找,替换操作同步控制(不建议使用,需要线程安全的集合类型考虑使用JUC下的并发集合)排序操作void reverse(List list)//反转void shuffle(List list)//随机排序void sort(List list)//按自然排序的升序排序void sort(List list, C...原创 2019-04-05 10:39:49 · 212 阅读 · 0 评论 -
final,static,this,super关键字总结
final关键字final关键字主要用在三个地方:变量、方法、类对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象当用final修饰一个类时,表明这个类不能被继承。final类中的所有成员方法都会被隐式地指定为final方法使用final方法的原因有两个。第一个原因是把方法锁定,以防任何...原创 2019-04-05 10:31:06 · 188 阅读 · 0 评论 -
Java集合框架必问面试题
ArrayList与LinkedList异同是否保证线程安全:ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向链表数据结构插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。 比如:执行a...原创 2019-04-05 10:32:58 · 512 阅读 · 0 评论 -
Java集合框架常见面试题总结
List,Set,Map三者的区别及总结List-对付顺序的好帮手List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象。其实是因为List为有序,元素才可以通过索引去区分重复的元素Set-注重独一无二的性质不允许重复的集合,不会有多个元素引用相同的对象Map-用Key来搜索的专家使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能...原创 2019-04-05 10:33:49 · 251 阅读 · 1 评论 -
到底什么是回调
到底什么是回调?这个问题从我入门编程开始就一直不得其解,今天看到了一篇博客终于能理解了点回调的思想。生动形象了讲解了回调看完上面那篇博客,我个人对回调的理解就是A中调用B的方法C,B中的方法C又调用了A中的方法D关于回调接口看完上面那篇博客,很多人认为其实A是没有必要实现CallBack<>这个接口的,直接在B方法的参数列表中声明A的类型即可,这样也能做到B中方法C调用A的方...原创 2019-07-18 17:12:47 · 7234 阅读 · 0 评论 -
Java中参数传递
情景引入我们先来看下面这个栗子//冒泡排序public static void BubbleSort(int[] arr) { if(arr==null || arr.length<2) return; for(int end=arr.length-1;end>0;end--) { for(int i=0;i<end;i++) { if(arr[...原创 2019-02-20 15:15:21 · 589 阅读 · 0 评论 -
死磕容器-List总结
List接口概述List接口框架Collection:框架的根接口。对于Collection,它不提供任何的实现,所有的实现由子类完成。AbstractCollection:提供Collection的骨干实现,减少实现此接口的工作List:表示有序的队列AbstractList:提供List的骨干实现,减少实现此接口的工作性能比较Vector与ArrayList的比较相同点:...原创 2019-02-10 20:41:45 · 130 阅读 · 0 评论 -
死磕容器-Vector
Vector概述Vector实现了list接口,和Arraylist,Linkedlist一样都是list接口的实现类。Vector可以实现可增长的对象数组。Vector与数组相比,都具有索引,不同的是Vector容量是可以改变的。Vector定义Vector实现List接口,继承AbstractList类,所以我们可以将其看做队列,支持相关的添加、删除、修改、遍历等功能。Vector实现...原创 2019-02-10 20:21:21 · 144 阅读 · 0 评论 -
散列表(一)
O(1)复杂度的实现实现O(1)复杂度要求:存储单元中存储的内容与存储地址是一一对应的存储单元是可以随机读取的(任意顺序直接读取–数组)public class CapableTest { private Object[] values=new Object[10]; public void add(int item) { values[item]=item; } publ...原创 2019-02-07 15:56:08 · 147 阅读 · 0 评论 -
泛型
泛型类泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种容器类,如:List、Set、Map。class 类名称 <泛型标识:可以随便写任意标识号,标识指定的泛型的类型>{ private 泛型标识 /*(成员变量类型)*/ var; public class Generic<T> { private T ...原创 2019-02-07 17:04:29 · 116 阅读 · 0 评论 -
异常
概念Java的基本概念是”结构不佳的代码不能运行”。发现错误的理想时机是在编译阶段,也就是在我们试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。因此通过引进异常机制,处理错误。基本异常异常情形是指阻止当前方法或作用域继续执行的问题。在遇到无法解决的问题时,选择从当前环境跳出,并且把问题提交给上一级环境,这就是抛出异常。首先,同java其他对象的创建一样,抛...原创 2019-02-09 19:17:01 · 373 阅读 · 0 评论 -
final基本概念
final的作用修饰类,该类不能被继承,并且这个类的对象在堆中分配内存后,地址不改变。修饰方法,该方法不能被重写修饰引用,引用无法改变。对于基本数据类型,值无法改变;对于引用,虽然不能改变其地址,但是可以修改指向的对象。...原创 2019-02-09 20:12:11 · 198 阅读 · 0 评论 -
代码块
代码块代码块就是用{}包围的代码局部代码块位置:方法内部方法中的局部代码块,一般进行一次性地调用,调用完立刻释放空间,避免在接下来的调用过程中占用栈空间。因为栈空间内存是有限的,方法调用可能会会生成很多局部变量导致栈内存不足。使用局部代码块可以避免这样的情况发生。如果在方法中想缩短变量的寿命,而不是贯彻整个方法周期,可以使用局部代码块public void test() { //局部...原创 2019-02-09 22:25:50 · 83 阅读 · 0 评论 -
深入剖析枚举类
enumenum 与 class、interface 具有相同地位;可以继承多个接口;可以拥有构造器、成员方法、成员变量;默认继承 java.lang.Enum 类,所以不能继承其他父类;其中 java.lang.Enum 类实现了 java.lang.Serializable 和 java.lang.Comparable 接口;枚举类与普通类不同之处使用 enum 定义,默认使用...原创 2019-02-09 23:43:04 · 164 阅读 · 0 评论 -
死磕容器-Arraylist
Arraylist概述Arraylist是实现了list接口的动态数组,所谓动态就是,该数组大小可变,具有可以改变数组大小的方法。每个Arraylist都有一个容量,该容量用来指定存储元素数组的大小,默认初始容量为10.随着Arraylist中元素的添加,容量也会随着自动增长。每次添加进新元素,Arraylist都会检查是否需要扩容操作。扩容操作带来数据向新数组的拷贝,如果我们知道大概实际的容...原创 2019-02-10 11:22:01 · 132 阅读 · 0 评论 -
死磕容器-Linkedlist
Linkedlist概述Linkedlist和Arraylist一样都实现了list接口,但是Linkedlistd的底层是链表实现,相比Arraylist,长于增删元素,但是随机访问效率比不上基于数组实现的Arraylist。源码剖析定义public class LinkedList&lt;E&gt; extends AbstractSequentialList&lt;E&gt;...原创 2019-02-10 12:11:46 · 122 阅读 · 0 评论 -
死磕容器-Hashmap
Hashmap概述Hashmap实现了map接口,以key-value的形式存在。在Hashmap,key-value被当作一个整体存在。系统根据hash算法来计算存储key-value的存储位置。构造函数讲构造函数前先看下几个重要的定义初始容量:static final int DEFAULT_INITIAL_CAPACITY = 1 &amp;lt;&amp;lt; 4; // aka 16加载因子...原创 2019-02-10 15:56:27 · 270 阅读 · 0 评论 -
死磕容器-HashSet
HashSet概述Hashset是基于Hashmap实现的,底层采用Hashmap保存元素。基本属性 private transient HashMap<E,Object> map; // 定义Object对象,作为value private static final Object PRESENT = new Object();构造函数无参构造函数:p...原创 2019-02-10 16:41:23 · 135 阅读 · 0 评论 -
死磕容器-HashTable
HashtableHashtable的实现和Hashmap差不多,两者之间只存在几点不同。基本属性Hashtable采用“拉链法”实现哈希表。table:为一个Entry[]数组类型,代表了拉链的节点。每一个Entry代表一个key-value。private transient Entry<?,?>[] table;count:Entry键值对的数量private t...原创 2019-02-10 17:09:15 · 145 阅读 · 0 评论 -
xml那些事儿
xml文件读取什么是xml文件?xml文件的表示是一种以".xml"为扩展名的文件。其存储结构为树形结构:节点名称区分大小写xml文件开头要加上版本信息和编码方式< ?xml version=“1.0” encoding=“UTF-8”? >应用Dom方式解析Xml文件首先我们要明确,解析xml文件的目的是获取xml文件中的节点名、节点值、属性名及属性值xml中节...原创 2019-07-18 00:16:47 · 140 阅读 · 0 评论