JavaSE
文章平均质量分 64
主要是JavaSE总结性内容
道_行
这个作者很懒,什么都没留下…
展开
-
反射概述
Java反射概述1. 反射机制概述2. Class类1. 反射机制概述什么是反射?加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息。我们可以通过这个Class类型的对象看到类的结构。这个对象就像一面镜子,透过这个镜子可以看到类的结构,所以我们形象的称之为 " 反射 "反射机制允许程序在执行期借助于 API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法反射机制提供的功能在运行时判断任意一个对象所属原创 2021-03-01 16:55:23 · 131 阅读 · 1 评论 -
网络编程概述
网络编程概述1. 网络通信要素2. InetAddress类3. Socket4. 基于Socket的TCP网络编程5. 基于Socket的UDP网络编程1. 网络通信要素网络中的主机间实现通信需要指明地址( IP、端口号)并遵守一定的网络通信协议(HTTP、FTP、TCP、UDP、IP 等)OSI 7层模型、TCP/IP 5层模型、对应的网络协议IP地址IP地址用于唯一标识 Internet 上的计算机。IPV4:32位(4个字节),表示范围为0—2^32。以点分十进制表示,如192.16原创 2021-02-24 23:33:24 · 66 阅读 · 0 评论 -
Java IO流概述
IO流解析1. 概述1. 概述Java程序中,数据的输入、输出操作以“流(stream)” 的方式进行I/O是Input/Output的缩写。I/O技术用于处理设备之间的数据传输。如读、写文件、网络通讯等(1)流的分类按操作数据单位:字节流(8 bit)、字符流(16 bit)按数据流的流向:输入流、输出流按流的角色:节点流(直接操作数据)、处理流(操纵节点流)抽象基类字节流字符流输入流InputStreamReader输出流OutputStrea原创 2021-02-21 20:40:31 · 123 阅读 · 0 评论 -
字节流 FileInputStream、FileOutputStream 解析
FileInputStream、FileOutputStream1. FileInputStream2. FileOutputStream字节流:顾名思义读取的是字节1. FileInputStream读取方法read()int read() // 从输入流中读取数据的1个字节。返回 0 到 255 范围内的 int 字节值。到达流末尾而没有可用的字节则返回值 -1int read(byte[] b)//将b.length个字节大小的数据读入数组。如果已到达流的末尾,则返回 -1。否则返原创 2021-02-21 15:35:35 · 440 阅读 · 0 评论 -
字符流 FileReader、FileWriter 解析
字符流1. FileReader2. FileWriter3. 通过FileReader、FileWriter实现文本的复制1. FileReader读取方法 read( )int read()//读取单个字符。将读取的字符转换成整数并返回(范围在 0 到 65535 之间),如果已到达流的末尾则返回 -1int read(char[] cbuf) //将字符读入数组。如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数int read(char[] cbuf,int off,in原创 2021-02-20 21:41:07 · 437 阅读 · 2 评论 -
Java char字符
Unicode并不是一种编码方式,只是为每一个文字、符号分配了唯一的数字编号。编号范围从0x000000到0x10FFFF(0-1114111),Unicode编号写成16进制并在前面加U+。具体的编码方式有UTF-8、UTF-16、UTF-32在 Java内部进行字符处理时,采用的都是Unicode,具体编码格式是UTF-16BE( 使用两个或四个字节表示一个字符 )。Unicode编号范围在65536以内的占两个字节,超出范围的占四个字节,BE (Big Endian)就是先输出高位字节,再输出低位.原创 2021-02-20 18:57:25 · 209 阅读 · 0 评论 -
常见编码方式(ASKII、GBK、UTF-8等)
常见编码方式1.美国1.1 ASCII2. 西欧2.1 ISO-8859-12.2 windows-12523. 中国3.1 GB23123.2 GBK3.3 GB180304. 港澳台4.1 Big55. 世界通用5.1 Unicode5.2 UTF-325.3 UTF-165.4 UTF-86.总结1.美国1.1 ASCII世界上虽然有各种各样的字符,但计算机发明之初没有考虑那么多,基本上只考虑了美国的需求。美国大概只需要128个字符,美国就规定了这128个字符的二进制表示方法,这个方法是一个标准原创 2021-02-20 16:25:07 · 7969 阅读 · 0 评论 -
File类的使用
构造器(只是在内存层面创建对象而并未在磁盘创建文件)public File(String pathname) //以pathname为路径创建File对象,可以是绝对路径或者相对路径public File(String parent,String child) //以parent为父路径,child为子路径创建File对象public File(File parent,String child)//以File类型的parent为父路径,String类型的child为子路径创建File对象.原创 2021-02-19 19:22:53 · 88 阅读 · 0 评论 -
Java 泛型解析
类A是类B的父类 G<A> 、G<B> 不具备子父类关系,而是并列关系 A<G> 是 B<G> 的父类 比如:Object类是String类的父类 但是:ArrayList<Object> 并不是ArrayList<String> 的父类 Object<List>是String<List>的父类原创 2021-02-14 22:32:36 · 153 阅读 · 2 评论 -
Java 集合总结
Java集合1集合框架2.Collection 接口常用方法2.1 常用方法2.2 几点说明1集合框架2.Collection 接口常用方法2.1 常用方法boolean add(Object obj) // 添加boolean addAll(Collection coll) // 将coll集合中的元素添加到当前的集合 int size() // 获取有效元素的个数void clear() // 清空集合boolean isEmpty() // 判断是否是空集合boolea原创 2021-02-12 22:29:44 · 78 阅读 · 1 评论 -
Iterator 迭代器
Collection接口继承于Iterable接口。该接口有 iterator() 方法,那么所有实现了Collection接口的集合类都有一个 iterator() 方法,用以返回一个实现了Iterator接口的对象Iterator 仅用于遍历集合,其本身并不提供承装对象的能力集合对象每次调用 iterator() 方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前常用方法boolean hasnext( ) // 如果集合中仍有元素则返回trueboolean next( ).原创 2021-02-12 22:25:08 · 304 阅读 · 0 评论 -
深入理解HashMap(源码解析)
HashMap1. HashMap概述2. 源码解析(JDK7)2.1 概述2.2 添加元素过程2.3 源码分析2.4 几点说明3. 源码解析(JDK8)1. HashMap概述key-value 允许使用nullkey构成的集合是Set:无序的、不可重复的。所以key所在的类要重写 equals()、hashCode()方法value构成的集合是Collection:无序的、可以重复的。所以value所在的类要重写:equals()HashMap 判断两个 key 相等的标准:两个 key 的原创 2021-02-12 19:28:10 · 341 阅读 · 1 评论 -
ArrayList 与 LinkedList
ArrayList 与 LinkedList1.List2.ArrayList2.1 ArrayList 特点2.2 ArrayList源码分析(JDK7)2.3 ArrayList源码分析(JDK8)1.ListList 集合:元素有序、且可重复List是Collection的子接口,ArrayList 与 LinkedList是 List 的实现类2.ArrayList2.1 ArrayList 特点线程不安全底层使用 Object 数组存储查询、更改速度快,增加、删除速度慢原创 2021-02-09 18:25:04 · 116 阅读 · 0 评论 -
Java 多线程总结
多线程1.Thread类1.1 常用方法1.2 代码示例2.多线程的创建2.1创建方式1:继承Thread类2.2 Start()方法、run()方法2.3 创建方式2:实现Runnable接口2.4关于创建方式2中start方法的说明3.线程优先级3.1 线程的调度3.2 优先级等级3.3 相关方法3.4 两点说明4.线程的生命周期1.Thread类1.1 常用方法1.void start() 启动当前线程;调用当前线程的run()方法2.void run() 通常需要重写Thread类中的此方原创 2021-02-07 20:46:06 · 110 阅读 · 0 评论 -
Java权限修饰符
1.Java规定的4种权限(从小到大排列 ) private、缺省、protected 、public2.权限修饰符的说明(1) 4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类(2)类的修饰只能使用:缺省、public3.权限修饰符可见性...原创 2021-01-12 20:53:52 · 1802 阅读 · 0 评论 -
Java 按值传递理解(一看就懂 含具体代码说明)
1.Java总是按值调用( 即方法得到的总是参数值的拷贝(副本) )2.Java数据类型3.说明:(1)基本数据类型的副本更改不影响原值public static void main(String []args) { int value1=10; int value2=20; System.out.println("Before swap value1: "+value1+" value2: "+value2);// swap(value1, value2); Syst原创 2021-01-12 19:45:41 · 155 阅读 · 0 评论 -
java 可变个数形参
1.定义:Java提供了可变个数形参机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参2.两种形式:(1)JDK 5.0之前形式: 方法名 ( 变量(引用)类型 []形参名 ) eg: show( String []str )调用:对象.方法名( new 变量类型[]{ 实参}) eg: s.show( new String[]{“hello”,“world”})public void show(String []st原创 2021-01-11 18:56:30 · 299 阅读 · 0 评论 -
Java 重载/重写/多态性
Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,下面详细介绍其区别。1.Java的多态机制(重写)重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:class Animal{ void eat() { System.out.print("animal eat"); }}class Tiger extends Animal{ void eat() { System.out.原创 2021-01-11 16:10:57 · 231 阅读 · 0 评论 -
Java 比较器 Comparable、Comparator
Java比较器1.自然排序:Comparable1.1 Comparable接口1.2 Comparable 的典型实现1.3 自定义类实现Comparable接口2.定制排序:Comparator2.1 Comparator 接口2.2 重写compare(T o1,T o2)使String 降序排列3.Comparable、Comparator区别4. 关于Comparable接口的一点说明1.自然排序:Comparable1.1 Comparable接口public interface Comp原创 2021-02-05 16:51:02 · 135 阅读 · 1 评论 -
Java 有关日期和时间的类
有关日期和时间的类1.JDK8之前的类1.1 java.lang.System1.1 java.util.Date1.JDK8之前的类1.1 java.lang.System public static native long currentTimeMillis(); 返回当前时间与1970年1月1日0时0分0秒之间的时间差(以毫秒为单位)。 1.可以用来表示当前时间与1970-1-1 00:00:00的时间差 2.可以用来计算任意两个时刻的时间差public static native l原创 2021-02-01 19:47:11 · 336 阅读 · 0 评论 -
String、StringBuffer、StringBuilder
1.String、StringBuffer、StringBuilder三者异同String : 不可变字符序列。底层使用char[ ]存储(声明为final,所以不可变)StringBuffer :可变字符序列。线程安全效率低。底层使用char[ ]存储StringBuilder(JDK5新增) :可变字符序列。线程不安全效率高。底层使用char[ ]存储继承关系2.String、StringBuffer、StringBuilder 源码分析StringString str = ne原创 2021-01-31 16:03:50 · 76 阅读 · 0 评论 -
Java常用类——String类总结
String类总结1.String类概述1.1 String类声明1.2 JVM中涉及字符串的内存结构1.3 创建String对象(以JDK8为例)1.3.1 JVM 中堆、栈、方法区和字符串常量池1.3.2 == 和 equals()区别1.3.3 字面量方式创建String对象1.3.4使用new创建String对象1.4 字符串拼接2.String类常用函数2.1 常用函数2.2 字符串与字符数组、字节数组的相互转换1.String类概述1.1 String类声明public final cla原创 2021-01-30 21:04:30 · 192 阅读 · 0 评论 -
Java 异常处理总结
异常处理总结1.异常概述1.1 异常分类1.2 异常体系结构2.异常处理机制——try-catch-finally2.1抓抛模型2.2使用格式2.3使用说明3.异常处理机制——throws3.1使用格式3.2使用说明3.3 try-catch-finally 和throws的区别3.4 try-catch-finally 和throws的选择4.手动抛出异常4.1 使用格式4.1 使用说明5.自定义异常1.异常概述1.1 异常分类Error:Java虚拟机无法解决的严重问题,一般不编写针对性的代码进原创 2021-01-29 20:35:50 · 347 阅读 · 1 评论 -
Java 内部类
1.为什么需要内部类当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。2.内部类分类(1) 成员内部类(即在外部类的方法体外)外部类只能用缺省或public 修饰,内部类可以使用所有权限修饰符可以调用外部类所有成员,包括私有成员变量内部类可声明为static,但此时就不能再使用外层类的非static 属性 / 方法;可以在内部类内定义属性、方法、构造器等可以声明为abstract ,可以声明为fin原创 2021-01-20 14:52:27 · 92 阅读 · 0 评论 -
接口体的静态方法和默认方法
接口体回顾(1)JDK7及以前:只能定义全局常量和抽象方法①全局常量:public static final 修饰(可省略,但只能是public)②抽象方法:public abstract 修饰 (可省略,但只能是public abstract)(2)JDK8:能定义全局常量、抽象方法、静态方法、默认方法1.静态方法抽象方法没有方法体,静态方法有方法体静态方法修饰符不一定是public,可以是其他权限修饰符接口中的静态方法不能通过类对象访问。若需要对象访问该方法,则需要在实现类中写一个原创 2021-01-19 23:21:02 · 574 阅读 · 0 评论 -
Java 接口interface
接口 interface 1.为什么需要接口2.接口声明(1) 接口声明语法(2) 接口体定义3 接口特性4 接口实现5.接口与类的区别6.接口与抽象类的区别2.应用举例1.为什么需要接口需要从几个类中派生出一个子类继承它们所有的属性和方法。但是Java不支持多重继承。有了接口,就可以得到多重继承的效果。需要从几个类中抽取出一些共同的行为特征,但是它们之间没有is-a的关系,仅仅是具有相同的行为特征。例如:鼠标、键盘、手机等都支持USB连接。2.接口声明(1) 接口声明语法//[ ]内视情原创 2021-01-19 21:23:13 · 79 阅读 · 0 评论 -
Java abstract关键字
1.abstract修饰类:抽象类定义:随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。抽象类不能实例化。一般需要子类继承此抽象类完成相关操作抽象类中一定有构造器 ( 子类实例化时需调用 )2.abstract修饰方法:抽象方法某些方法在父类中难以实现,则申明为抽象方法。子类一般需要重写该抽象方法以实现相关操作。抽象方法只有方法的声明,没有方法体原创 2021-01-19 15:35:56 · 184 阅读 · 1 评论 -
Java final关键字
回顾:对属性可赋值的位置①默认初始化②显式初始化 / ⑤在代码块中赋值③构造器中初始化④有了对象以后,可以通过"对象.属性"或"对象.方法"的方式,进行赋值执行的先后顺序:①→② / ⑤→③→④static:属性、方法、代码块、内部类final 关键字( final:最终的)final可修饰:属性、方法、类final 修饰类:此类不能被其他类所继承。比如:String类、System类、StringBuffer类、StringBuilder类final 修饰方法:表明此方法不可原创 2021-01-18 17:58:25 · 75 阅读 · 0 评论 -
代码块
代码块作用:用来初始化类、对象注意:代码块如果有修饰的话,只能使用static1. 静态代码块作用:初始化类的信息随着类的加载而执行 且只执行一次如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行静态代码块的执行要优先于非静态代码块的执行(因为静态代码块随着类的加载而执行,非静态代码块随着对象的创建而执行。类的加载早于对象的创建。)静态代码块内只能调用静态的属性 / 方法,不能调用非静态的属性 / 方法2. 非静态代码块作用:可以在创建对象时,对对象的属性等进行初始化随着对原创 2021-01-18 17:19:42 · 85 阅读 · 0 评论 -
Java static关键字
static可以用来修饰:属性、方法、代码块、内部类1.static 修饰属性被static 修饰的属性称为静态属性 / 静态变量 / 类变量,未被static 修饰的属性称为非静态属性 / 实例变量实例变量:类的多个对象独立拥有类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。静态属性:静态属性随类的加载而加载。类的所有对象共享同一个静态变量。当通过某一个对象修改静态变量后,其他对象调用的静态变量是被修改后的。class Chinese{ sta原创 2021-01-18 15:54:45 · 90 阅读 · 0 评论 -
Java 基本数据类型、包装类、String类的相互转换和自动拆箱/装箱
基本数据类型和包装类的对应关系1.基本数据类型→包装类调用包装类的构造器自动装箱( JDK5.0以后出现 )//调用包装类的构造器Integer in1 = new Integer(100);//in1=100Integer in2 = new Integer("100");//in2=100Integer in3 = new Integer("100a");//NumberFormatException异常Boolean b1=new Boolean(true); //trueB原创 2021-01-16 19:43:43 · 178 阅读 · 0 评论 -
Java toString方法
1.Object类中 toString() 的使用:当我们输出一个对象的引用时,实际上就是调用当前对象的toString()int []arr=new int[10];System.out.println(arr); //[I@2f92e0f4System.out.println(arr.toString()); //[I@2f92e0f4 //Object类中toString()的定义: * public String toString() * { return原创 2021-01-16 15:22:31 · 169 阅读 · 1 评论 -
Java ==和equals()区别
1.== 运算符可以比较 基本数据类型变量 和 引用数据类型变量基本数据类型比较:比较两个变量保存的数据是否相等。(不一定类型要相同)int a=10;float f=10f;char c1=10;char c2='A';char c3=65;System.out.println(a==f);//trueSystem.out.println(a==c1);//trueSystem.out.println(f==c1);//trueSystem.out.println(c2==c3)原创 2021-01-16 15:12:52 · 125 阅读 · 3 评论 -
Java instanceof 关键字(含代码示例说明)
1.向上转型 向下转型2.强制类型转换的应用应用多态性时由于引用为父类类型,导致编译时只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。因此可将父类引用强制转换为子类引用,则可调用子类特有方法。class Animal{ public void shout() { System.out.println("Animal is shouting "); }}class Dog extends Animal{ public void shout() { Syste原创 2021-01-15 22:03:46 · 256 阅读 · 0 评论 -
Java 子类对象实例化
创建子类的对象后在堆空间中,就会加载所有父类中声明的所有属性。当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器 …直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有的父类的结构,所以才可以看到内存中有父类中的结构,子类对象才可以考虑进行调用。明确:虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建过一个对象:即为new的子类对象。...原创 2021-01-15 17:29:47 · 146 阅读 · 0 评论 -
Java super关键字
1 super调用属性/方法(1) super理解为:父类的、超类的(2) super调用:属性、方法、构造器在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略" super. "特殊情况1:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用" super. 属性"的方式,表明调用的是父类中声明的属性。public class Person{ int i原创 2021-01-15 17:28:39 · 95 阅读 · 0 评论 -
Java 继承性
Java 继承性概述1继承性优点2继承性格式3继承性体现4继承性规定5 object 类1继承性优点① 减少了代码的冗余,提高了代码的复用性② 便于功能的扩展③ 为之后多态性的使用,提供了前提2继承性格式class A extends B { }A: 子类、派生类、subclassB: 父类、超类、基类、superclass3继承性体现子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。注意:父类中声明为private的属性或方法,子类继承父类以后,仍然认原创 2021-01-15 17:26:35 · 153 阅读 · 0 评论 -
java this/package/import 关键字的使用
1.this理解为:当前对象2.this可以用来修饰(调用):属性、方法、构造器3.在类的方法中,我们可以使用"this.属性"或"this.方法"的式,调用当前对象的属性或方法。通常情况下,我们选择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。//1.this修饰属性(此处this不可省略)class Student{ int No; String Name; public Student(int原创 2021-01-13 14:29:31 · 191 阅读 · 1 评论