JavaSE
文章平均质量分 54
JavaSE
healthLau
他们坐在特快列车里,却不知道他们要追寻什么。所以他们很烦躁,不停地绕圈子......
展开
-
IDEA自动生成serialVersionUID
Java类中 serialVersionUID 的作用serialVersionUID适用于Java的序列化机制:判断类的serialVersionUID来验证版本一致性的序列化过程:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID一致,如果一致就说明序列化类的版本与当前类版本是一样的,可以反序列化成功,否则失败。IDEA打开自动生成.原创 2021-08-19 17:23:56 · 5372 阅读 · 0 评论 -
Java StringBuffer与StringBuilder扩容机制
StringBuffer与StringBuilderStringBuffer和StringBuilder都是继承自AbstractStringBuilder 它们两个的区别在于StringBuffer是线程安全的但效率低,StringBuilder是线程不安全的但高效。 StringBuffer和StringBuilder的扩容机制是一样的,因此分析一个即可,下面以StringBuffer为例。StringBuffer与StringBuilder扩容机制StringBuffer 的无参构造原创 2021-01-09 21:48:40 · 3696 阅读 · 1 评论 -
String.join 字符串拼接
连接指定数组的元素或集合的成员,在每个元素或成员之间使用指定的分隔符。String []str1 = {"a","b","c","d","e"};System.out.println(String.join("--",str1)); //a--b--c--d--e List<String> str2=new ArrayList<String>();str2.add("a");str2.add("b");str2.add("c");str2.add("d"原创 2020-09-13 15:14:38 · 1164 阅读 · 0 评论 -
Lambda 表达式(Java8新特性)
一、Lambda 表达式简介实质上就是一个接口匿名内部类对象的简化形式Lambda运算符:-> 运算符左边:Lambda表达式的参数列表(不需要写参数类型,只写参数名) 运算符右边:Lambda表达式的实现体,相当于方法的主体二、Lambda 表达式语法:1.没有参数,没有返回值的抽象方法。没有参数,小括号不能省略() -> System.out.println("Hello Lambda");2.有一个参数,没有返回值;如果只有一个参数,参数后的小括号...原创 2020-12-28 13:55:10 · 196 阅读 · 2 评论 -
IO 转换流
转换流1、GBK:国标码,英文占一个字节,中文两个字节2、UTF-8 万国码表,定义了全球所有语言的符号,英文占一个字节,中文占三个字节转换流1、InputStreamReader:是字节流转向字符流的桥梁,可以指定转换时使用的字符集 InputStreamReader(InputStream is): 将指定的字节流is转为字符流。返回值:获取的是InputStreamReader对象,是Reader子类 InputStreamReader(InputStream i.原创 2020-12-27 21:53:43 · 222 阅读 · 2 评论 -
IO 字符流
字符流字符流抽象基类 Reader:字符输入流的抽象类 Writer:字符输出流的抽象类 具体子类: FileReader:字符输入流 FileWriter:字符输出流 Reader的常用方法 close(); read(); read(char[] arr); Writer的常用方法 close(); flush(); write(int c):写出一个字符原创 2020-12-27 21:45:24 · 114 阅读 · 0 评论 -
Java 正则表达式
目录一、正则表达式简介正则表达式常用方法二、正则表达式规则正则表达式的字符类正则表达式的预定义字符类正则表达式的数量词一、正则表达式简介本质上就是一个字符串 作用:不仅表示一个字符串,还可以表示一类字符串,表示一类字符串的规则或者格式,通过正则表达式可以完成对数据的过滤,分隔替换 好处:可以用非常简单的代码完成非常复杂的规则 不好的地方,不容易写出正确的规则正则表达式常用方法matches(String regex):判断是否符合正则规则s.mat...原创 2020-12-26 15:43:01 · 101 阅读 · 0 评论 -
Eclipse快捷键
内容辅助键 alt + / 在想不起来代码的时候,可以用这个来做代码的自动生成 main syso sout 输出语句 创建对象 补全类名 构造方法,给变量起名字 遍历数组 快捷键: ctrl +n 新建工程、 包 、 类、和文件 ctrl + shift + f: 格式化代码 记得关输入法快捷键 ctrl + shift + o:自动导包 或者删除没有用的包 ctrl +/ 单行注释 取消单行注释 ctrl + shift + / ...原创 2020-12-24 21:41:48 · 820 阅读 · 0 评论 -
Java面向对象基本特征
封装封装:隐藏事务属性的实现细节,对外公开一个公共的访问方式 封装的好处: 隐藏事务的实现细节 提高了代码的复用性 提高安全性 类封装的原则: 隐藏事务的属性 隐藏事务的实现细节 对外提供一个公共的访问方式 继承让类和类之间产生关系,父子关系。使用关键字 extends 定义一个A类,定义一个B类,让A类去继承B类,A类中就拥有B类中的所有内容(除private修饰的) 父类和子类的关系 父类:就是被继承的类,别称:超类,基类 子类:用于继承类,别称:派生类原创 2020-12-24 21:37:52 · 85 阅读 · 0 评论 -
IO 字节流
字节流字节流抽象基类lnputStream:这个抽象类是表示字节输入流的所有类的超类OutputStream:这个抽象类是表示字节输出流的所有类的超类子类名特点:子类名称都是以其父类名作为子类名的后缀 一、字节流写数据FileOutputStream:文件输出流用于将数据写入File(OutputStream抽象类的子类)FileOutputStream(String name):创建文件输出流以指定的名称写入文件/* FileOutputStream:文件输出流用于将原创 2020-12-05 14:52:15 · 169 阅读 · 0 评论 -
IO流概括和分类
IO流概括和分类IO流概括 IO:输入/输出(Input/Output) 流:是一种抽象概念,对数据传输的总称。也就是说数据在设备间传输称为流,流的本质是数据传输。 IO流就是用来处理设备间数据传输问题的 常见的应用:文件复制、文件下载、文件上传 IO流分类 按数据流向 输入流:读数据 输出流:写数据 按数据类型分 字节流 字节输入流;字节输出流 字符流 ...原创 2020-12-05 14:40:44 · 278 阅读 · 0 评论 -
Java 函数式接口
概念函数式接口在Java中指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda ,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法 , Java中的Lambda才能顺利地进行推导。格式只要确保接口中有且仅有一个抽象方法即可:修饰符 interface 接口名称...原创 2019-11-22 21:22:35 · 284 阅读 · 0 评论 -
字符缓冲流 BufferedWriter写入数据
创建student.txt文件,并用BufferedWriter写入字符串和换行符import java.io.*;public class IOTest06 { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("F:/stude...原创 2019-11-10 15:04:19 · 1082 阅读 · 0 评论 -
字符缓冲流 BufferedReader读取文件 及 获取键盘输入
BufferedReader读取文件显示在控制台import java.io.*;public class IOTest05 { public static void main(String[] args) throws IOException{ FileReader fr = new FileReader("F:/tt.txt"); Buffe...原创 2019-11-10 14:52:55 · 2166 阅读 · 0 评论 -
字符流 FileReader与FileWriter
FileReader读取 student.txt 中的内容显示在屏幕中import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class IOTest03 { public static void main(String[] args) ...原创 2019-11-10 13:50:48 · 159 阅读 · 0 评论 -
字节流缓冲流 复制文本内容到另一个文本(BufferedInputStream和BufferedOutputStream)
import java.io.*;public class IOTest02 { public static void main(String[] args) throws IOException{ try{ FileInputStream in = new FileInputStream("F:/in.txt"); //来源文件 ...原创 2019-11-10 13:27:35 · 368 阅读 · 0 评论 -
字节流 创建文本,写入数据并读取(FileInputStream与FileOutStream流)
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class IOtest01 { public static void main(String[] args) throws IOExceptio...原创 2019-11-09 22:34:56 · 791 阅读 · 0 评论 -
内部类(非静态、局部、静态、匿名)
目录内部类(非静态、局部、静态、匿名):一、非静态内部类1.创建非静态内部类2.在外部类中访问内部类3.在外部类外访问内部类4.在内部类中访问外部类5.补充二、局部内部类1.局部内部类的创建2.在局部内部类中访问外部类成员变量3.在局部内部类中访问外部类的局部变量4.静态方法中的局部内部类三、静态内部类1.创建静态内部类2.实例化 及 ...原创 2019-09-14 20:24:35 · 694 阅读 · 0 评论 -
用文本编辑器写第一个Java程序
创建Java文件打开文本编辑器(Windows自带的记事本、Notepad++等等),键入以下命令并保存为“Welcome.java”文件:public class Welcome{ public static void main(String[] args){ System.out.println("我的第一个Java程序"); }}我自己在“E盘”建了个“Java”文件...原创 2019-09-08 21:26:33 · 851 阅读 · 0 评论 -
eclipse下载安装
一、eclipse下载下载地址:https://www.eclipse.org/downloads/1.进入后选择“Download Packages”下载其他类型的包2.选择Eclipse IDE for Java Developers ,按需求选择符合自己操作系统的版本3.之后进入如下界面,默认下载的是日本一所大学的镜像,建议点击Select Another Mirro...原创 2019-09-08 21:26:44 · 4177 阅读 · 9 评论 -
eclipse下建立Java项目
1.打开eclipse,点击“File”-->“New”-->“Java Project”2.输入项目名称,按Finish3.此时出现此界面,选择“Don't Create”4.至此一个项目创建完成,此时右键“src”选择“New”——>“Class”,创建一个.class文件5.输入类名,点击Finish6.在代码编辑页面,输入完整代码...原创 2019-09-08 21:26:52 · 315 阅读 · 0 评论 -
Java注释 及 标识符
一、注释在Java中注释主要分为单行注释、多行注释和文档注释: 单行注释: 使用“//”开头,“//”后面的单行内容均为注释。 多行注释: 以 “/*” 开头以 “*/” 结尾,在 “/*” 和 “*/” 之间的内容为注释,我们也可以使用多行注释作为行内注释。但要注意,多行注释不能嵌套使用。 文档注释: 以 “/**” 开头以 “*/” 结尾,注释中包含一些...原创 2019-09-08 21:27:06 · 3089 阅读 · 0 评论 -
Java方法的重载
方法重载定义:指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用时,会根据不同的参数自动匹配对应的方法。注意:不同的含义:形参类型、形参个数、形参顺序 只有返回值不同不构成方法的重载,例如:inta(Stringstr) {} 与 voida(Stringstr) {} 只有形参的名称不同,不构成方法的重载pub...原创 2019-09-08 21:27:14 · 286 阅读 · 0 评论 -
Java递归
递归定义:程序调用自身的编程技巧称为递归( recursion)递归的缺陷: 递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。任何能用递归解决的问题也能使用迭代解决,不强调效率问题时,可以采用递归;在要求高性能的情况下尽量避免使用递归,递归调用既花时间又耗内存。递归求阶乘示例:public cla...原创 2019-09-08 21:27:24 · 480 阅读 · 0 评论 -
static关键字
用static声明的成员变量为静态成员变量,也称为类变量,类变量的生命周期和类相同特点:为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享! 一般用“类名.类属性/方法”来调用。(也可以通过对象引用或类名(不需要实例化)访问静态成员。) 在static方法中不可直接访问非static...原创 2019-09-08 22:12:07 · 106 阅读 · 0 评论 -
继承(extends) 与 instanceof 运算符
一、继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。关键字继承要点:父类也称作超类、基类、派生类等。 Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。 Java中类没有多继承,接口有多继承。 子类继承父类,可以得到父类的全部属性和方法 (除了父类...原创 2019-09-11 00:01:59 · 423 阅读 · 0 评论 -
方法调用顺序 与 super关键字
super关键字Java默认都会调用super(), 含义是调用父类的无参数构造方法。可以通过super来访问父类中被子类覆盖的方法或属性。使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。构造方法调用顺序: 构造方法第一句总是:super(…)来调用父类对应的构造方法。所以,流程就是:先向上追溯到Object,然后再依次向下执行类的初始化块和...原创 2019-09-11 19:49:47 · 574 阅读 · 0 评论 -
访问权限修饰符
访问权限修饰符Java中4种“访问控制符”分别为private、default、protected、public,它们说明了面向对象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。1.private 在同一类中可访问。2.default(即默认,什么也不写): 在同一包内可访问。3.protected对同一包内的类和所有子类可访问。4...原创 2019-09-11 20:29:59 · 85 阅读 · 0 评论 -
多态(polymorphism) 与 对象的转型
一、多态多态指的是同一个方法调用,由于对象不同可能会有不同的行为。多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关)。 2. 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。 3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。public class TestDuotai {...原创 2019-09-11 21:20:08 · 126 阅读 · 0 评论 -
final关键字
final关键字的作用:修饰类:修饰的类不能被继承。 修饰方法:修饰的方法不能被子类重写,但可以被重载。 修饰变量:修饰的变量一经赋值不可改变(必须要赋值)。...原创 2019-09-11 21:27:05 · 80 阅读 · 0 评论 -
for-each循环
for-each循环专门用于读取数组或集合中所有的元素,即对数组进行遍历。注意事项: 1. for-each增强for循环在遍历数组过程中不能修改数组中某元素的值。 2. for-each仅适用于遍历,不涉及有关索引(下标)的操作。使用示例:public class TestForeach { public static void main(Str...原创 2019-09-12 12:16:26 · 557 阅读 · 0 评论 -
抽象方法和抽象类
抽象方法 使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。抽象类 包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现,相当于给子类提供一个设计模板。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。示例:public class ...原创 2019-09-14 09:24:00 · 173 阅读 · 0 评论 -
接口(interface) 和 接口多继承
一、接口声明格式:[访问修饰符] interface 接口名 [extends 父接口1, 父接口2 ···] {常量定义 ;方法定义 ;}接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为public abstract(只能是 public abstract,其他修饰符都会报错)。 接口中可以含有变量,但是接口中的变量会被隐式的...原创 2019-09-14 12:31:23 · 736 阅读 · 0 评论 -
JDK的下载安装和环境变量的配置
一、下载JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html二、安装JDK安装路径可以自己选择,我选的是D盘,选择好路径后按“下一步”出现这个界面就安装完成了,点击关闭即可三、配置环境变量注意:如果使用 1.5 以上版本的 JDK,不用设置 CLASSPATH...原创 2019-09-08 21:27:00 · 125 阅读 · 0 评论