JavaSE最少必要知识掌握
Java知识点集
熊猫拿铁
越努力,越幸运。
展开
-
Junit单元测试
Junit单元测试分类:黑盒测试:不需要写代码,输入值后看程序执行完能否输出期望的值。白盒测试:需要写代码,关注程序具体的执行流程。Junit使用:白盒测试步骤:定义一个测试类(测试用例)建议:测试类名:被测试的类名Test CalculatorTest包名:xxx.xxx.xx.test cn.it.test定义测试方法:可以独立运行建议:...原创 2019-12-08 23:20:19 · 63 阅读 · 0 评论 -
模块化
模块化JDK 9.0 13.0 jre 核心类库JDK 9.0的模块化,是这个版本最大的革新。让整个java核心类库不再是一个整体,而是将它们进行模块划分。让java在运行的时候,需要什么模块,才加载什么模块,而不是像以前的情况,运行任何程序,都需要将整个jre核心类库全部加载进内存。 medule-info.java // 导出包 exports 包名; medu...原创 2019-12-07 06:30:40 · 65 阅读 · 0 评论 -
注解
注解:就是相当于贴标签概念:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。概念描述:JDK1.5之后的新特性说明程序的使用...原创 2019-12-07 06:30:20 · 120 阅读 · 0 评论 -
类加载器 ClassLoader
类加载器 ClassLoader加载类的三个阶段:验证 验证类信息是否正确初始化 给类成员进行初始化解析 将二进制指针,替换成直接引用构造方法的执行流程:在加载一个类的时候,会优先初始化该类的父类;类的加载时机:创建对象使用类成员 static通过反射初始化子类,也会加载该类使用java.exe类加载器:BootstrapCla...原创 2019-12-06 07:16:23 · 97 阅读 · 0 评论 -
反射
反射:框架设计的灵魂框架:半成品软件,可以在框架的基础上进行软件开发,简化编码。反射:将类的各个组成部分封装为其他对象,这就是反射的机制。好处:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。 Person p = new Person(); Person.class属性; Class 对象, Person字节码对象 p.getClass...原创 2019-12-06 07:16:06 · 74 阅读 · 0 评论 -
Stream 流
Stream 流类似于生活中的生产流水线;专门负责加工数据的;特点:只有容器能够获取流对象;流只负责处理数据,不负责存储数据;每条流,只能使用一次,是一次性的;只能往前走,不能回退;获取流的方式:单列集合:Stream list_stream = list.stream();Stream set_stream = set.stream();双...原创 2019-12-05 23:29:07 · 175 阅读 · 0 评论 -
函数式编程
函数式编程侧重于要做什么,而不是怎么做;函数式接口: @FunctionalInterface (用于检查接口是否是函数式接口)有且仅有一个抽象方法的接口。如果方法是Object类中的抽象方法,那么也是函数式接口;函数式接口: 冗余作为参数: 有名字的实现类、匿名内部类、【lambda】返回值类型:有名字的实现类、匿名内部类、【lambda】Suplli...原创 2019-12-05 23:28:45 · 113 阅读 · 0 评论 -
Lambda 表达式
Lambda 表达式就可以看成是匿名内部类的简写版本;面向对象:侧重于对象;函数式编程:只关注,我需要做什么,而不关心怎么做;【前提】:必须是函数式接口(有且仅有一个抽象方法的接口) Runnable如果函数式接口中的抽象方法是Object类中的方法,那么也可以标准格式:(): 方法参数列表的括号->: gosto 指向。 将小括号内的参数,传递给...原创 2019-12-05 06:50:45 · 66 阅读 · 0 评论 -
网络编程-协议
TCP协议传输控制协议(Transmission Control Protocol)TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”。三次握手:TCP协议中,在发送数据的准备阶段,客户...原创 2019-12-05 06:50:20 · 114 阅读 · 0 评论 -
网络编程-端口
端口设备上应用程序的唯一标识网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程序,那么在网络通信时,如何区分这些应用程序?如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的应用程序,也就是应用程序的标识。端口号:用两个字节表示的整数,取值范围:065535。其中,01024之前端口被一些知名网络服务个应用;建议使用10000以后的端口号。...原创 2019-12-04 06:47:58 · 152 阅读 · 0 评论 -
网络编程-IP
IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号;也就是设备的标识。分类:IPV4点分十进制表示法 如:192.168.1.1IPV6 (解决网络地址资源有限问题)常用命令:ipconfig 查看本机IP地址ping IP地址:检查网络是否连通特殊IP...原创 2019-12-04 06:47:22 · 119 阅读 · 0 评论 -
多线程
1.实现多线程1.1进程和线程进程:是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序1.2实现多线程方式一:继承Thread类方法介绍方法...原创 2019-12-04 06:46:54 · 217 阅读 · 0 评论 -
IO流-字节流
字节流IO流概述和分类分类按照数据的流向输入流:读数据输出流:写数据按照数据类型来分 (默认)字节流字节输入流;字节输出流字符输入流;字符输出流1.字节输入流InputStream 父类FileInputStream构造方法:FileInputStream file = new FileInputStream(“文件路径”);F...原创 2019-12-03 06:53:57 · 69 阅读 · 0 评论 -
IO流-字符流
字符流1.字符输入流Reader 父类FileReader构造方法:FileReader file = new FileReader(String “文件路径”);FileReader file = new FileReader(File file);获取方法:方法名描述close()关闭此输入流并释放与流相关联的任何系统资源。re...原创 2019-12-03 06:53:35 · 66 阅读 · 0 评论 -
IO流-转换流
转换流字节流转字符流构造方法InputStreamReader isr = new InputStreamReader(new FileInputStream(“文件路径”));字符流转字节流构造方法OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“文件路径”));从字节到字符的高效输入流...原创 2019-12-02 00:25:20 · 65 阅读 · 0 评论 -
File
File一、File类概述和构造方法概述:就是将一个字符串类型路径封装成一个File对象构造方法File(String pathname):File(String parent,String child)File(File parent,String)二、File类创建功能方法public boolean createNewFile() 创建文件public...原创 2019-12-01 22:31:36 · 138 阅读 · 0 评论 -
Map
1.Map集合1.1Map集合概述和特点Map集合概述interface Map<K,V> K:键的类型;V:值的类型Map集合的特点键值对映射关系一个键对应一个值键不能重复,值可以重复元素存取无序1.2Map集合获取功能1.3Map集合的遍历方式- 通过 ketSet()```javaMap<String> map =...原创 2019-12-01 22:31:01 · 72 阅读 · 0 评论 -
HashMap
HashMapHashMap<K,V> 哈希表 【去重】V put(K,V); 添加映射关系,返回被覆盖的原值;V remove(K); 根据键,删除键值对,返回值int size(); 获取集合键值对对数void clear(); 清空集合boolean isEmpty(); 判断集合是否为空 空 = true,不空 = falseboolean...原创 2019-12-01 22:30:26 · 74 阅读 · 0 评论 -
序列化和反序列化
序列化和反序列化概念:序列化: 将程序中的对象,以二进制形式写入文件;对象序列化流:ObjectOutputStream反序列化: 将文件中的二进制数据,读回程序,重构成对象;对象反序列化流:ObjectInputStream注意:需要被序列化的对象的类,必须实现Serializ//反序列化private void read() throws Except...原创 2019-12-01 07:00:18 · 83 阅读 · 0 评论 -
可变参数
1.可变参数1.1可变参数可变参数介绍 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了可变参数定义格式修饰符 返回值类型 方法名(数据类型… 变量名) { }可变参数的注意事项这里的变量其实是一个数组如果一个方法有多个参数,包含可变参数,可变参数要放在最后可变参数的基本使用public class ArgsDemo01 {...原创 2019-12-01 06:47:45 · 212 阅读 · 0 评论 -
类型通配符
类型通配符类型通配符的作用 为了表示各种泛型List的父类,可以使用类型通配符类型通配符的分类类型通配符:<?>List<?>:表示元素类型未知的List,它的元素可以匹配任何的类型这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中类型通配符上限:<? extends 类型>List<? ex...原创 2019-12-01 06:47:28 · 499 阅读 · 0 评论 -
泛型
泛型1.泛型概述和好处泛型概述 是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。这种参数类型可以用在类、方...原创 2019-12-01 06:47:10 · 113 阅读 · 0 评论 -
哈希值
哈希值哈希值简介是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值如何获取哈希值Object类中的public int hashCode():返回对象的哈希码值哈希值的特点同一个对象多次调用hashCode()方法返回的哈希值是相同的默认情况下,不同对象的哈希值是不同的。而重写hashCode()方法,可以实现让不同对象的哈希值相同获取哈希...原创 2019-11-29 21:04:42 · 276 阅读 · 0 评论 -
LinkedHashSet
LinkedHashSet集合概述和特点LinkedHashSet集合特点哈希表和链表实现的Set接口,具有可预测的迭代次序由链表保证元素有序,也就是说元素的存储和取出顺序是一致的由哈希表保证元素唯一,也就是说没有重复的元素LinkedHashSet集合基本使用public class LinkedHashSetDemo { public static void m...原创 2019-11-29 21:04:25 · 176 阅读 · 1 评论 -
TreeSet
TreeSet集合概述和特点TreeSet集合概述元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法TreeSet():根据其元素的自然排序进行排序TreeSet(Comparator comparator) :根据指定的比较器进行排序没有带索引的方法,所以不能使用普通for循环遍历由于是Set集合,所以不包含重复元素的集合TreeSet集合基本使用...原创 2019-11-29 21:03:21 · 159 阅读 · 0 评论 -
自然排序Comparable
自然排序Comparable的使用案例需求存储学生对象并遍历,创建TreeSet集合使用无参构造方法要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序实现步骤用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的自然排序,就是让元素所属的类实现Comparable接口,重写compareTo(T o)方法重写方法时,一定要注意排序规...原创 2019-11-28 22:29:26 · 164 阅读 · 0 评论 -
比较器排序Comparator
比较器排序Comparator的使用案例需求存储学生对象并遍历,创建TreeSet集合使用带参构造方法要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序实现步骤用TreeSet集合存储自定义对象,带参构造方法使用的是比较器排序对元素进行排序的比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法重写方...原创 2019-11-28 22:29:09 · 591 阅读 · 0 评论 -
Set集合
Set集合Set集合概述和特点Set集合的特点元素存取无序没有索引、只能通过迭代器或增强for循环遍历不能存储重复元素Set集合的基本使用public class SetDemo { public static void main(String[] args) { //创建集合对象 Set<String> set = ne...原创 2019-11-28 22:28:53 · 67 阅读 · 0 评论 -
并发修改异常
并发修改异常出现的原因 迭代器遍历的过程中,通过集合对象修改了集合中的元素,造成了迭代器获取元素中判断预期修改值和实际修改值不一致,则会出现:ConcurrentModificationException解决的方案 用for循环遍历,然后用集合对象做对应的操作即可示例代码public class ListDemo { public static void mai...原创 2019-11-26 21:32:52 · 66 阅读 · 0 评论 -
LinkedList集合
LinkedList集合 底层是链表结构实现,查询慢、增删快LinkedList集合的特有功能特有方法方法名说明public void addFirst(E e)在该列表开头插入指定的元素public void addLast(E e)将指定的元素追加到此列表的末尾public E getFirst()返回此列表中的第一个元素public ...原创 2019-11-26 21:32:27 · 282 阅读 · 0 评论 -
ArrayList集合
ArrayList集合底层是数组结构实现,查询快、增删慢,长度可以变化1.ArrayList类常用方法1.1构造方法方法名说明public ArrayList()创建一个空的集合对象1.2成员方法方法名说明public boolean remove(Object o)删除指定的元素,返回删除是否成功public E ...原创 2019-11-26 21:32:07 · 868 阅读 · 0 评论 -
List集合
List集合1.List集合概述和特点List集合概述有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素List集合特点有索引可以存储重复元素元素存取有序2.List集合的特有方法方法名描述void add(int index,E el...原创 2019-11-26 21:31:37 · 96 阅读 · 0 评论 -
Collection集合概述
Collection集合概述和基本使用1.1Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现1.2Collection集合基本使用public class CollectionDemo01 { public static void...原创 2019-11-26 21:31:17 · 1019 阅读 · 0 评论 -
冒泡排序
冒泡排序原理冒泡排序概述一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序如果有n个数据进行排序,总共需要比较n-1次每一次比较完毕,下一次的比较就会少一个数据参与3.6 冒泡排序代码实现代码实现/* 冒泡排序: 一种排序的方式,对要进行排序的数据中相邻的数据进行...原创 2019-11-25 23:39:49 · 86 阅读 · 0 评论 -
Object
Object类Object类概述Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类,换句话说,该类所具备的方法,所有类都会有一份查看方法源码的方式选中方法,按下Ctrl + B重写toString方法的方式Alt + Insert 选择toString在类的空白区域,右键 -> Genera...原创 2019-11-25 23:39:27 · 96 阅读 · 0 评论 -
异常
异常异常的概述 - 异常就是程序出现了不正常的情况异常的体系结构JVM默认处理异常的方式如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:把异常的名称,错误原因及异常出现的位置等信息输出在了控制台程序停止执行try-catch方式处理异常定义格式try { 可能出现异常的代码;} catch(异常...原创 2019-11-25 23:39:10 · 93 阅读 · 0 评论 -
Math
Math概述Math 包含执行基本数字运算的方法Math中方法的调用方式Math类中无构造方法,但内部的方法都是静态的,则可以通过 --类名.进行调用–Math类的常用方法方法名 方法名说明public static int abs(int a)返回参数的绝对值public static double ceil(double...原创 2019-11-25 23:38:45 · 139 阅读 · 0 评论 -
包装类
包装类1.基本类型包装类基本类型包装类的作用将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据常用的操作之一:用于基本数据类型与字符串之间的转换基本类型对应的包装类基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubl...原创 2019-11-25 23:37:57 · 152 阅读 · 0 评论 -
Calendar类
Calendar类Calendar类概述Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。该方法返回一个Calendar 对象。其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.ge...原创 2019-11-24 23:27:45 · 57 阅读 · 0 评论 -
SimpleDateFormat类
SimpleDateFormat类SimpleDateFormat类概述SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。SimpleDateFormat类构造方法方法名说明public SimpleDateFormat()构造一个SimpleDateFormat,使用默认模式和日期格式public Sim...原创 2019-11-24 23:27:04 · 226 阅读 · 0 评论