Java SE
JavaSE部分的基础知识
@另维吖
种一棵树最好的时间是十年前,其次是现在。
展开
-
System.arraycopy()、copyOf()、clone() 方法的简单比较
1、System.arraycopy():此方法源码如下public static native void arraycopy(Object src,int srcPos,Object dest,int destPos,int length);此方法是一个本地方法,方法对应的实现不在当前文件里,而是在其他语言实现的文件的,比如C,C++。越接近本地方法,也就是越低层的效率是最高2、Arrays.copyOf()public static <T,U> T[] copyOf(U[] or原创 2020-08-09 23:41:34 · 846 阅读 · 0 评论 -
Collection 和 Map 的详细笔记
文章目录Collection 集合提供的功能描述ListArrayListLinkedList功能描述VectorSetQueue/DequeCollection 集合是集合层次结构的根界面,用于传递集合。JDK 不提供此接口的直接实现,而是提供子接口的实现。扩展了我们熟知的三大集合。每种集合的通用逻辑都被抽象到相应的抽象类中。提供的功能描述添加功能删除功能判断功能获取功能长度功能交集功能转换为数组List是有序集合提供了方便的访问、插入、删除等操作ArrayList是应用更原创 2020-08-09 21:23:20 · 503 阅读 · 0 评论 -
final关键字修饰变量和初始化时机
1、final修饰变量final修饰基本类型:被final修饰的变量复制过后便不能在被修改,一旦修改就报错(变量标识的空间里保存的就是具体内容,而不是一个地址,所以基本类型不能再改变,一旦改变就是变量本身改变了不符合final关键字)final修饰引用类型:final修饰引用类型表示该引用指向的对象固定了,但是对象的内容是可以改变的(final实际修饰的是栈上的一个引用值,这个引用代表了对...原创 2019-12-18 13:24:14 · 1377 阅读 · 0 评论 -
字符串拼接的几种方式
1、使用 + 完成拼接字符串常量String str1 = "hello";String str2 = "world";String str3 = "hello" + "world";反编译以后的代码,String str1 = "hello";String str2 = "world";String str3 = (new StringBuilder()).append("hel...原创 2020-03-17 20:15:00 · 7411 阅读 · 0 评论 -
如何让理解字符串常量的不可变
1、字符串常量不可变字符串是一种不可变对象,指的是它的内容不可改变,但是引用是可以改变的,String类内部实现也是基于char[]来实现的,并且源码中String类是私有的并没有提供方法修改类内部的字符数组private final char value[];String str = "hello";str += "world";str += "!!!";//hello word!...原创 2020-03-16 21:17:00 · 1020 阅读 · 0 评论 -
JDK新特性之自动拆装箱
自动拆箱装箱Integer ii = 100;ii += 200;System.out.println("ii:"+ii);等价于Integer ii = Integer.valueof(100);//自动装箱ii = Integer.valueOf(ii.intValue() + 200);//自动拆箱再自动装箱System.out.println(new StringBuild...原创 2020-03-16 18:00:11 · 213 阅读 · 0 评论 -
集合框架的概述
1、集合的出现java是一门面向对象的语言,需要对对象进行操作,那么对象就需要容器存储,为了满足比那花的需求就出现了集合2、特点长度可变其存储内容只能是引用类型存储内容不限制同一种数据类型,可以同时存储多种引用类型3、继承体系结构为了满足变化的需求,java提供了不同的集合类,这些集合类的数据结构都不尽相同。但是都需要提供存储和遍历的功能,不断地向上公共功能就形成了它地体系图。...原创 2019-12-20 23:10:08 · 107 阅读 · 0 评论 -
集合的遍历方式三
集合事物遍历(方式三)1、普通 for 循环List集合中提供了两个特有的抽象方法方便for循环遍历集合:public abstract <E> get(int index); //返回此列表中指定位置的元素public abstract int size(); //返回此列表中的元素数eg: 存储字符串对象并遍历//创建集合对象 List li = new Array...原创 2019-12-20 22:06:31 · 108 阅读 · 0 评论 -
集合的遍历方式二
集合的遍历(方式二)1、迭代器Iterator iterator() 迭代器方法//注意这个方法,返回值类型Iterator,一个接口,实际返回的是这个接口实现类的对象接口中的抽象方法:boolean hasNext() //迭代具有更多元素,返回trueObjext next() //返回迭代的下一个元素eg: 用集合创建5个学生对象,并遍历对象分析:创建集合对象创建...原创 2019-12-19 21:37:43 · 107 阅读 · 0 评论 -
集合的遍历方式一
集合的遍历(方式一)1、把集合转换成数组,通过遍历数组实现eg: 用集合创建5个学生对象,并遍历对象分析:创建学生类创建集合对象创建学生对象把集合转换成数组遍历数组详细代码calss Student { private String name; private int age; public Student(){} public Student(String n...原创 2019-12-19 21:05:00 · 172 阅读 · 0 评论 -
集合框架Collection集合的功能分类概述
Collection集合1、概述集合层次结构的根界面(集合中所有的类或方法都直接或者间接继承、实现该接口)2、功能描述添加功能boolean add(Object obj) //添加一个元素,可以有重复boolean addAll(Collection c) //添加一个集合元素,可以有重复删除功能void clear()//移除所有元素(过于暴力,不建议使用)boole...原创 2019-12-19 20:44:52 · 170 阅读 · 0 评论 -
详列抽象类和接口细节比较
参数抽象类接口默认的实现方法可以有完全抽象,不存在方法实现实现可以提供默认实现,子类可以重载抽象类方法只包含接口签名构造器有无内在与外在类所具备的内在特征,如果应用场景需要定义统一类型的对象,最好使用抽象用于定义外在能力特征,比如人和车都具备移动的特性访问修饰符可以包含protected默认所有的方法均为publicmain方...原创 2019-12-18 13:51:48 · 103 阅读 · 0 评论 -
包装类Integer类常见使用
1、包装类:为了对基本数据类型进行更多操作,更方便的操作,java针对每一种基本数据类型提供了对象的类类型,包装类类型byte(1字节) 对应包装类 Byteshort(2字节) Shortchar(2字节) Characterint(4字节) Integerlong(8字节) Longfloat(4字节) Float...原创 2019-12-18 13:44:21 · 276 阅读 · 0 评论 -
Object类简介及equals方法和hashCode方法详解
1、概述类层次的根类,每个类直接或间接继承Object类,所有对象(包括数组)都实现了这个类的方法(java.lang)2、构造方法public Object(){}//所有子类都默认访问父类的无参构造,是因为所有子类的共同父类Object,只有一个构造方法,并且是一个空构造3、成员方法以下方法均用此代码作为示例:class Student{ public String na...原创 2019-12-18 13:19:31 · 173 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的比较、及参数传递问题
1、String和StringBuffer和数组的区别String是内容不可变的,而StringBuilder是可变的。具体可以通过源码来理解这两个类public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final c...原创 2019-12-14 18:23:44 · 252 阅读 · 0 评论 -
StringBuffer基本操作概述
1、StringBffer的概述StringBuffer字符串缓冲区,相当于一个容器,不同于String,StringBuffer对象是可变的,详细可以根据StringBuffer类的源码实现。2、StringBuffer的构造方法public StringBuffer(){}//无参构造,最常用public String(int size){}//指定容量的字符串缓冲区对象,默认开始...原创 2019-12-14 17:13:12 · 357 阅读 · 0 评论 -
String类的常见使用及数组和字符串的转换
1、字符串和数组的相互转换字符串转换数组1>对于"ab,de,fg"可以借用split()String str = "ab,de,fg";String[] arr = str.spilt("//,");分隔符要转义2>对于"abdefg"String str = "abdefg";char[] arr = str.toCharArray();//返回的是字符数组...原创 2019-12-14 16:11:45 · 449 阅读 · 0 评论 -
String类对象的创建和实例化
1、String类概述(代表字符串)字符串是由多个字符组成的一串数据(字符序列)字符串可以看成是字符数组2、创建字符串对象常见的构造方法://public String{}空构造String s1 = new String();System.out.println("s1:"+s1);System.out.println("s1.length():"+s1.length());...原创 2019-11-30 16:52:05 · 659 阅读 · 0 评论 -
抽象类和接口重点知识概述
1、抽象类1、概述:在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。2、特点:抽象类和抽象方法必须用abstract修饰抽象方法没有方法体,注意和空方法的区别抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象抽象类有构造方法的,此构造方法只是为了让子类访问父类进行初始化。抽象类的实例化是靠具体的子类实现的,是通过多态的方式。...原创 2019-11-17 20:03:33 · 140 阅读 · 0 评论 -
多态、成员间的访问和转型问题
多态面向对象的第三大特性1、概念:同一个对象,在不同时刻体现出来的不同状态2、前提继承或者实现关系必有一个要有方法重写(其实这个也可以没有,但是如果没有的话其实就没有意义)要有父类引用指向子类3、成员访问特点class Animal{ public void a(){}}class Bird extends Animal{ public void b(){} publ...原创 2019-11-17 19:08:54 · 110 阅读 · 0 评论 -
this和super再理解
1、super和this的含义super:代表父类的存储空间标识(通过这个标识可以访问父类的成员和构造,但是其实是不同于父类的引用的)this:代表当前对象的引用(谁调用就代表谁)2、各自的用法1>访问成员this.成员变量(本类)this.成员方法(本类)super.成员变量(父类)super.成员方法(父类)2>访问构造this() 本类的构造super...原创 2019-11-17 16:47:08 · 269 阅读 · 0 评论 -
类和继承重点知识详述
1、继承1、概述:将多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,再写其他类的时候无需再定义这些属性和行为,只要继承那个类就好。语法 :class 子类名 extends 父类名单独这个类称为父类、基类、超类,这多个继承自父类的类称为子类、派生类有了继承之后,我们可以在一个已经存在的类继承上还可以定义自己的新成员。2、好处:提高了代码的复用性、可维护性、让类与类之...原创 2019-11-14 17:51:40 · 362 阅读 · 0 评论 -
Java中的数据类型、强制转换、数值提升
数据类型1、char 字符型注意哈,忘记C语言里面的,完全没有迷你整型这一说,这就是一种类型,字符型,纯纯的字符型哈占2个字节 2^16(0-65535),他是真正的字符型,所以更加没有负数这一说哈,我们可以以下方式测试一下(其实无法打印哦,要始终记住这个是字符型)。其实他的范围是:’\u0000’到‘\uffff’Character.MIN_VALUECharacter.M...原创 2019-09-28 22:02:22 · 211 阅读 · 0 评论 -
java中的运算符
运算符1、算术运算符基本的四则运算符:+ - * / %int/int的结果还是intint a=1;int b=2;Syystem.out.println(a/b); //0//注意这里需要用double来计算0不能做除数int a=1;int b=0;Syystem.out.println(a/b); //会抛出异常,关于异常分析后续...原创 2019-10-10 15:56:37 · 187 阅读 · 0 评论 -
Java数组重点知识和常见应用
1、数组的基本概念数组的概念:是存储同一种类型多个元素的集合,可以看成是一种容器,它既可以存储基本类型也可以存储引用类型。初始化:为数组中的数据元素分配内存,并为每个元素赋值。int[] arr1 = {1,2,3} //静态初始化(赋值后系统据此决定长度)int[] arr2 = new int [] {1,2,3} //动态初始化int[] arr3 = new int[2...原创 2019-10-19 23:53:23 · 267 阅读 · 0 评论 -
图示java中对类、创建初始化对象的理解
1、类和对象是构造对象的蓝图或模板,我们可以将类想象成制作小甜饼的切割机,将对象想象成小甜饼,切割机是改变不了的,而制作出的小甜饼可以不同。由类构造对象的过程称为创建类的实例。类之间,最常见的关系有:依赖(use-a):一个类的方法操纵另一个类的对象。(应该减少相互依赖的类。如果类A不知道B的存在,它就不会关心B的任何改变,就是让类之间的耦合度最小)聚合(has-a):类A的对象包含B...原创 2019-10-26 23:07:03 · 475 阅读 · 2 评论