Java SE
Java SE 是java学习的第一阶段,本专栏涵盖了几乎所有的知识点,并带有相应的实例。
又菜又想学java
QQ:1715387186
致力于为新手朋友提供帮助,欢迎交流
展开
-
java8新特性
函数式接口1、概念:使用功能性接口作为函数的参数,Lambda表达式协助实现函数功能。2、功能性接口分类:消费式接口,提供式接口,函数式接口,断言式接口3、消费式接口import java.util.function.Consumer;public class Demo4_消费式接口 { public static void main(String[] args) { method(x -> System.out.println("每月消费" + x + "元原创 2021-01-13 20:51:46 · 242 阅读 · 0 评论 -
Lambda表达式
1、概念:是匿名内部类的另外一种表现形式。2、语法(参数列表) -> {重写方法体};3、无返回值,无参数的Lambda表达式interface Inter4 { //无参数的无返回值的功能方法 public void method();}public class Demo3_Lambda表达式 { public static void main(String[] args) { //匿名内部类(内部类实现接口) /*Inte原创 2021-01-13 20:41:22 · 133 阅读 · 2 评论 -
Java8接口新特性
1、概念:接口的新特性用于解决接口功能扩展带来的问题。2、解决:接口中可以存在默认方法以及静态方法。3、默认方法(1)概念:使用default修饰方法(2)语法访问修饰符 default 返回值类型 方法名(参数列表){方法体}(3)代码示例interface Inter { public default void method() { System.out.println("Inter default method()..."); }}inte原创 2021-01-13 20:31:37 · 227 阅读 · 0 评论 -
HashSet存储自定义类型元素去重判断过程
初步怀疑是因为equals比较的是对象的地址值,地址值不同,所以去重没有成功。重写equals方法,让它比较数据。但是重写之后发现,还是可能有重复。考虑HashSet使用了哈希存储来存储元素,所以可能跟hashcode()有关。所以重写hashcode(),让它乘上一个素数。...原创 2021-01-12 21:24:51 · 212 阅读 · 0 评论 -
实现数组int[] arr ={1,4,5,12,2,99}中所有元素的遍历功能,获取出数组中最大值和最小值
分析:第一步:找关键词数组、遍历、最大值、最小值拿到这种题,很明显是考察java中的数组,具体是对数组的取值操作。再看遍历,数组中的遍历就用for循环。第一种写法://数组取值,取最大值,最小值public class ArrayCaoZuoTest { public static void main(String[] args) { //定义一个数组,并对它初始化赋值 int arr[] = {1,4,5,12,2,99}; //定义原创 2021-01-12 20:57:09 · 1129 阅读 · 0 评论 -
简述continue与break的作用与区别
作用:在循环语句中,可以用break语句跳出循环,用continue语句结束本次循环。区别:1、1)continue语句只结束本次循环,而不是终止整个循环的执行;2)break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。2、break可以用在switch结构和循环结构中continue只能用在循环结构中...原创 2021-01-12 20:35:28 · 1884 阅读 · 0 评论 -
接口与抽象类的区别
1、定义不同接口的定义:interface 接口名 {方法声明的定义;}抽象类的定义:abstract class 类名 {}2、成员变量不同接口中:只能是常量,不能是变量抽象类:可以定义变量,也可以定义常量,但是不能被抽象3、有无构造方法不同接口中没有构造方法(因为不需要定义变量)抽象类中有构造方法(仍然无法创建对象,主要用于被子类重写)ps:有没有构造方法,不取决与是否可以创建对象,而是取决于是否可以定义成员变量4、成员方法不同接口中只能是抽象方法,不能是非抽象方法原创 2021-01-12 20:17:38 · 144 阅读 · 0 评论 -
多线程
多线程相关概念1、线程三组概念(1)程序与进程程序:一组运行逻辑和数据的集合,是一个静态概念,一般存储在磁盘中。进程:一个正在运行的程序,程序一次运行,是一个动态概念,一般加载在内存中。(2)进程与线程进程:正在运行的程序,该程序独立占用资源,是资源分配的一个单位。线程:独立运行任务的路径。多线程:程序运行过程中,需要多个子任务协同执行,每个线程完成一个任务,任务之间不会相互依赖,独立执行。进程和线程关系:一个进程最少由1个线程组成,一个进程中多个线程共享进程分配的资源。(3)并行与并发原创 2021-01-12 19:33:22 · 98 阅读 · 0 评论 -
转换流
1、OutputStreamWriter类(转换字符输出流)(1)API介绍解析:OutputStreamWriter类是Writer类的子类,该类可以接收到的 字符通过指定字符编码表(如果不指定则使用默认的字符编码表)编码成字节信息,再通过指定的字节流写出。(2)构造方法import java.io.*;public class Demo10_OutputStreamWriter { public static void main(String[] args) throws Fi原创 2021-01-12 13:40:38 · 62 阅读 · 0 评论 -
字符流
1、概念:使用字符作为载体传输数据的过程。2、Writer类(1)API介绍(2)功能方法3、FileWriter类(1)API介绍(2)构造方法import java.io.FileWriter;import java.io.IOException;public class Demo4_FileWriter { public static void main(String[] args) throws IOException { //FileWrit原创 2021-01-12 13:31:27 · 75 阅读 · 0 评论 -
成员变量和局部变量的区别
含义:成员变量:定义在类中的成员位置的变量,就是成员变量局部变量:定义在方法中的变量,就是局部变量不同点:定义不同:定义位置不同局部变量:定义在方法中,或者方法声明上(方法的形式参数)成员变量:定义在类中方法外 内存中位置不同局部变量:属于方法,和方法的位置相同,在栈内存的方法的栈帧中成员变量:属于对象,和对象的位置相同,在堆内存的对象中生命周期不同局部变量:随着方法的调用而存在,随着方法的调用结束而消失成员变量:随着对象的创建而存在,随着对象的消失而消失初始化状态不同局部原创 2021-01-11 09:02:11 · 474 阅读 · 0 评论 -
IO流之字节流
1、生活中的流:水流,车流,流水线。2、流的概念:流是一种载体,用于装载事物,并根据一定方向进行移动。3、Java中的流:根据传输数据载体不同分成两种字节流,字符流,装载数据,从内存传递到硬盘流称之为输出流,从硬盘传输到内存的流称之为输入流。4、学习流方式:从简单到复杂,先学字节流再学字符流。从上往下,先学IO流根再学其子类。字节流1、OutputStream:字节输出流(1)API介绍(2)功能方法2、FileOutputStream类(1)API介绍(2)构造方法i原创 2021-01-12 13:17:48 · 107 阅读 · 0 评论 -
File类
1、IO操作(1)I的概念:input,输入流,读取操作。(2)O的概念:output,输出流,写入操作。2、File类(1)API介绍(2)构造方法import java.io.File;public class Demo2_File { public static void main(String[] args) { //构造方法 //File(String) File file = new File("/Users/jim原创 2021-01-10 20:36:29 · 109 阅读 · 0 评论 -
异常
1、概念:错误,不正常2、生活中异常:停水,停电,生病…3、Java中异常:程序错误导致程序无法正常完成,得到程序员预想的结果。4、健壮程序:每个程序基本都有异常,可能在某个环境没有出现而已,这时程序员应该具有处理异常能力,提前预判该程序可能出现的异常,通过处理异常程序不会因为异常而导致无法正常运行,该程序就是一个健壮的程序,好的程序,鲁棒性强的程序。5、异常机制:public class Demo7_异常机制 { public static void main(String[原创 2021-01-10 20:29:02 · 69 阅读 · 0 评论 -
Collections集合工具类
1、API介绍2、功能方法import java.util.List;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Enumeration;public class Demo6_Collections { public static void main(String[] args) { Integer[]原创 2021-01-10 20:21:15 · 88 阅读 · 0 评论 -
Arrays数组工具类
1、API介绍2、功能方法import java.util.Arrays;import java.util.List;public class Demo5_Arrays { public static void main(String[] args) { //基本数据类型数组 int[] arr = {2, 1, 3}; //引用数据类型数组 Integer[] arr2 = {2, 1, 3}; //原创 2021-01-10 20:19:11 · 130 阅读 · 0 评论 -
Hashtable类
1、API介绍2、构造方法3、特有功能方法import java.util.Enumeration;import java.util.Hashtable;public class Demo4_Hashtable { public static void main(String[] args) { Hashtable<String, String> map = new Hashtable<>(); map.put("cn",原创 2021-01-10 20:17:28 · 247 阅读 · 0 评论 -
LinkedHashMap类
1、API介绍2、构造方法import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map;public class Demo3_LinkedHashMap { public static void main(String[] args) { //构造方法 LinkedHashMap<String, String> map = new LinkedHa原创 2021-01-10 20:15:16 · 157 阅读 · 0 评论 -
HashMap类
1、API介绍2、构造方法import java.util.HashMap;import java.util.Map;public class Demo2_HashMap { public static void main(String[] args) { //HashMap() 使用默认容量 16 和负载因子 0.75 HashMap<String, String> map = new HashMap(); System.原创 2021-01-10 20:12:49 · 289 阅读 · 0 评论 -
Map集合
1、Collection集合和Map集合区别2、Map接口(1)API介绍(2)添加/修改功能方法import java.util.HashMap;import java.util.Map;public class Demo1_Map { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); //.put(key原创 2021-01-10 20:10:13 · 173 阅读 · 0 评论 -
this和super的对比
1、含义:this关键字表示本类当前对象的引用哪个对象在调用this所在的方法,this就表示哪个对象super关键字表示本类当前对象的父类的引用哪个对象在调用super所在的方法,super就表示哪个对象中的父类部分的数据this关键字详解2、...原创 2021-01-10 19:36:08 · 168 阅读 · 0 评论 -
LinkedHashSet类
1、API介绍2、构造方法(与HashSet类构造方法一致)3、功能方法(与HashSet类功能方法一致)import java.util.LinkedHashSet;import java.util.Set;public class Demo8_LinkedHashSet { public static void main(String[] args) { Set<String> set = new LinkedHashSet(); set原创 2021-01-10 20:02:22 · 107 阅读 · 0 评论 -
Set接口与HashSet类
1、API介绍2、功能方法(与Collections接口提供方法一致)HashSet类1、API介绍2、构造方法import java.util.ArrayList;import java.util.Collection;import java.util.HashSet;import java.util.Set;public class Demo7_HashSet { public static void main(String[] args) { //构原创 2021-01-07 21:03:57 · 140 阅读 · 0 评论 -
泛型
1、概念:广泛的类型。定义时不确定类型,在使用时来确定,该类型就是泛型。2、使用泛型语法:<泛型类型1,泛型类型2,…泛型类型n>泛型类型:必须是引用类型,如果需要基本数据类型作为泛型,请使用包装类。3、代码示例import java.util.ArrayList;import java.util.List;public class Demo6_泛型 { public static void main(String[] args) { /*List原创 2021-01-07 20:57:58 · 140 阅读 · 0 评论 -
Vector类
1、API介绍2、构造方法import java.util.Vector;public class Demo5_Vector { public static void main(String[] args) { Vector vector = new Vector(); System.out.println(vector); }}3、特有功能方法(其他功能方法与List一致)import java.util.Enumeration;原创 2021-01-07 20:50:46 · 67 阅读 · 0 评论 -
重写和重载的区别
重载:同一个类中方法名相同,参数列表不同,与返回值类型无关重写:在父类与子类中,方法名相同,参数列表相同,返回值类型相同,子类中重写的方法权限要大于父类中被重写的方法原创 2021-01-07 08:53:48 · 157 阅读 · 0 评论 -
LinkedList类
1、API介绍2、构造方法import java.util.ArrayList;import java.util.Collection;import java.util.LinkedList;public class Demo9_LinkedList { public static void main(String[] args) { //构造方法 //LinkedList() 空链表 LinkedList list = new原创 2021-01-07 08:25:38 · 109 阅读 · 0 评论 -
ArrayList类
1、API介绍2、构造方法import java.util.ArrayList;import java.util.Collection;public class Demo8_ArrayList { public static void main(String[] args) { //构造方法 //ArrayList() 开辟长度为10的集合空间 ArrayList list = new ArrayList(); Sys原创 2021-01-07 08:25:05 · 79 阅读 · 0 评论 -
ListIterator接口
1、API介绍2、功能方法import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class Demo7_ListIterator { public static void main(String[] args) { List list = new ArrayList(); list.add(0, 1); list.ad原创 2021-01-07 08:24:20 · 132 阅读 · 0 评论 -
List接口
1、API介绍2、功能方法import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;public class Demo6_List { public static void main(String[] args) { List list = new ArrayList(); //.add(int,O原创 2021-01-07 08:23:36 · 61 阅读 · 0 评论 -
Iterator接口
1、API介绍import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Demo5_Iterator { public static void main(String[] args) { Collection col = new ArrayList(); col.add(1); col.add(2.3);原创 2021-01-07 08:22:20 · 76 阅读 · 0 评论 -
Collection接口
1、API介绍2、添加功能方法import java.util.ArrayList;import java.util.Collection;import java.util.HashSet;public class Demo4_Collection { public static void main(String[] args) { //Collection接口 //1、添加方法 add() 将元素添加到集合中,如果添加成功返回true,否则返回f原创 2021-01-07 08:21:40 · 114 阅读 · 0 评论 -
权限修饰符
权限修饰符可以在什么位置被访问private只能在本类中被访问默认(啥都不写)可以在本类中被访问、也可以在本包中的其它类中被访问protected可以在本类中被访问 、也可以在本包中的其它类中被访问、可以在其它包中的子类中被【继承】public能在本类中被访问、能在本包中的其它类中被访问、能在其它包中的子类中被访问、能在其它包的无关类中被访问记忆技巧:权限从大到小:4(本类、本包其它类、其它包子类、其它包无关类)、3(本类、本包其它类、其它包子类)、2(...原创 2021-01-06 13:49:28 · 53 阅读 · 0 评论 -
集合概述
1、生活中集合:班集体,集团2、集合概念:集合又称之为集合框架,多个集合接口和集合类之间关系。3、集合框架中关系图原创 2021-01-06 13:18:35 · 93 阅读 · 0 评论 -
正则表达式
1、概念:用于验证字符串是否符合格式的字符串。2、代码示例public class Demo9_正则表达式 { public static boolean isOk(String qq) {// //首数字不能为0// if (qq.charAt(0) == '0') {// return false;// }// //长度为6~11位// if (qq.length() < 6 |原创 2021-01-06 13:15:53 · 95 阅读 · 0 评论 -
基本类型的包装类
1、包装类概念:将基本数据类型数据组装成引用数据类型数据。2、包装类作用:String使用数据类型与基本数据类型(byte,short,int,long,float…)的区别,基本数据类型只是一个取值范围,没有具体方法或者属性。String类除了有取值范围外,还包含属性和方法。sun公司想能否将每个的基本数据类型都提供一个引用类型,从而能否具有属性和方法,方便程序使用。所以推出包装类。3、包装类分类4、Integer类(1)API介绍(2)属性public class Demo7_In原创 2021-01-06 13:07:06 · 1488 阅读 · 0 评论 -
StringBuilder类型
1、API介绍2、构造方法public class Demo6_StringBuilder { public static void main(String[] args) { //构造方法 //1、无参构造方法,对StringBuilder开辟一个长度为16的字符数组 StringBuilder builder = new StringBuilder(); System.out.println(builder);原创 2021-01-06 12:58:14 · 299 阅读 · 0 评论 -
System类
1、API介绍2、功能方法public class Demo6_System { public static void main(String[] args) { //功能方法 //1、exit(int) 退出JVM,int类型参数,0表示正常退出,非0表示不正常退出。 //System.exit(0); //System.out.println("系统结束"); //2、currentTimeMillis(原创 2021-01-06 12:49:54 · 43 阅读 · 0 评论 -
Math类
1、API介绍2、属性public class Demo5_Math { public static void main(String[] args) { //属性 System.out.println(Math.E);//2.718281828459045 System.out.println(Math.PI);//3.141592653589793 }}3、功能方法public class Demo5_Math {原创 2021-01-06 12:43:17 · 49 阅读 · 0 评论 -
String类
1、API介绍2、构造方法public class Demo4_String { public static void main(String[] args) { String s = "abc"; System.out.println(s);//abc //构造方法 //1、无参构造方法 String s2 = new String(); System.out.println(s2);//原创 2021-01-06 11:53:17 · 148 阅读 · 0 评论