JavaSE
文章平均质量分 88
Java基础知识点
ZHBlog_
不用担心,我头发还很多!!!
展开
-
Java HashMap原理
1、HashMap原理HashMap就像它的名字一样,它的Key是通过HashCode来存储的,数组+链表,jdk8以后为了提高查询的性能加入了红黑树,首先HashMap维护了一个数组,数组中存储的元素类型为Entry,Entry就是一个键值对,当每一个Entry要被添加到数组中时,就要对这个Entry进行Hash算法来计算出它的HashCode,计算的时候是用Key来计算它的hashCode,得到它的HashCode以后,对它的HashCode进行取模运算,比如说EntryA取模的结果是1,EntryB原创 2021-03-24 09:38:57 · 197 阅读 · 0 评论 -
JavaSE——Java8之Stream流
Java中的Stream流一、 初识Stream流Stream流是Java8后发布的一系列新特性中的一种,Stream流和我们以前学习过的IO流并不一样,Stream流的特性支持程序的开发人员以函数式的方式、更为简单高效的操作集合、数组等数据结构,大大提高了程序的效率和可阅读性。1.1、为什么要引入Stream流,它的好处在哪? 我们以前学习过的集合框架中的两大接口:Collection...原创 2019-12-14 20:41:55 · 318 阅读 · 0 评论 -
JavaSE——Java8之四大函数式接口
常用的函数式接口:1、java.util.function.Supplier< T > java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 用来获取一个泛型参数指定类型的对象数据。 Suppelier...原创 2019-12-12 23:07:07 · 261 阅读 · 0 评论 -
JavaSE——Java8之函数式接口、函数式编程、Lambda表达式
一、函数式接口1、概念 函数式接口的几点特征: 函数式接口只有一个抽象方法; default方法某默认实现,不属于抽象方法; 接口重写了Object的公共方法也不算入内。 函数式接口的应用场景:函数式编程,而在Java中的函数式编程就是Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中只有一个抽象方法,Lambda表达式才能顺利的进行...原创 2019-12-11 15:09:06 · 200 阅读 · 0 评论 -
JavaSE基础——反射
1、反射概述 Java反射机制是在 运行状态下,对于任意一个类,都能够知道这个类所有的属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及 动态调用对象的方法的功能 称为Java的反射机制。 加载完类之后,在堆内存中的方法区就会产生了一个 Class 类型的对象 (一个类只有一个Class对象) ,这个对象就包含了完整的类的信息结构。我们可以通过这个对...原创 2019-12-10 12:09:37 · 214 阅读 · 0 评论 -
JavaSE基础——注解
一、注解概述 1、 注解Annotation是从JDK5.0开始的新技术,注解信息在源码、编译期、运行期都存在,可以获取。 2、注解的作用: ● Annotation不是程序,而是用来解释程序的。 ●Annocation可以被其他程序读取。 3、Annotation的格式:@注解名(参数)例如:@SuppressWarning(value = "unchecked")...原创 2019-12-08 22:59:23 · 106 阅读 · 0 评论 -
JavaSE基础——方法参数类型及返回值类型问题、权限修饰符、内部类、匿名内部类
JAVA学习day10 JavaSE基础——权限修饰符、内部类、匿名内部类1. 类名、接口名作为方法参数和返回值类型 ● 类名和抽象类名作为方法参数类型和返回值类型 ● 接口名作为方法参数类型和返回值类型代码演示:public class Test { public static void main(String[] args) { Student stude...原创 2019-10-20 22:53:50 · 154 阅读 · 0 评论 -
JavaSE基础 ——运算符
JAVA学习day03 javase基础语法 ——运算符3.1 算数运算符运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称之为操作数。算数运算符最常见的操作就是将操作数参与数学运算,具体使用见下表:运算符运算规则范例结果+正号+33+加2+35+连接字符串“中”+“国”中国-负号int a = ...原创 2019-09-30 11:59:49 · 187 阅读 · 0 评论 -
JavaSE基础 ——流程控制语句
JAVA学习day04 javase基础语法 ——流程控制语句4.1 选择结构 ifif 条件语句分为三种语法格式,下面分别介绍:4.1.1 if语句if 语句是指如果满足某种条件,就进行某种处理。...原创 2019-10-02 20:54:27 · 218 阅读 · 0 评论 -
JavaSE基础——代码块、继承、方法重写和final关键字
JAVA学习day08 JavaSE基础——代码块、继承、方法重写和final关键字1.1 代码块的概述和分类 ● 代码块的概述: 在代码块中,被{ }括起来的代码被称为代码块。 ● 代码块的分类: 根据代码块位置和声明的不同,可将代码块分为局部代码块、构造代码块、静态代码快、同步代码块。 ● 常见代码块的应用: (1)局部代码块:在方法中出现;限定变量声明周期,早释放...原创 2019-10-07 19:55:59 · 140 阅读 · 0 评论 -
JavaSE基础——多态、抽象类、接口
JAVA学习day09 JavaSE基础——多态、抽象类、接口1、多态 1.1 多态概述 多态是继封装、继承之后,Java面对对象的第三大特征。Java作为面对对象的语言,可以用来描述一个事物的多种形态。如一个Student类继承了Person类,一个Student类的对象既可以是Student,也可以是Person。 Java中多态的代码体现在一个子类继承父类后,这个子类的对象...原创 2019-10-14 19:24:15 · 205 阅读 · 0 评论 -
JavaSE基础——网络编程
1、计算机网络 计算机网络就是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路来连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2、网络编程 2.1、网络模型OSI 模型 2.2、网络编程三要素 (1)IP地址: InetAddress:网络设备的标识,不容易记忆,可用主机名。 (2)...原创 2019-12-04 23:17:33 · 154 阅读 · 0 评论 -
JavaSE基础——GUI编程(Swing)
Swing 1、简介 Swing并没有完全取代AWT,而是基于AWT的架构之上。Swing仅仅是提供了能力更强大的用户界面组件。在使用Swing编写的程序中,还需要使用基本的AWT处理事件。从现在开始,Swing是“被绘制的”用户界面 ;AWT是指像事件处理这样的窗口工具箱的底层机制。 2、窗口和面板import javax.swing.*;import java.awt.*;...原创 2019-12-03 12:23:22 · 186 阅读 · 0 评论 -
JavaSE基础——GUI编程(AWT)
GUI的核心技术:Swing和AWT(抽象窗口工具箱) 1、AWT 1.1 组件和容器 框架Frame :代码实现第一个窗口:public class FrameDemo { public static void main(String[] args) { Frame frame = new Frame("我的第一个窗口");//创建窗口对象 ...原创 2019-12-02 20:17:56 · 176 阅读 · 0 评论 -
JavaSE基础——Java多线程(2)
1、静态代理 利用代理可以在运行时创建一个实现了一组给定接口的新类。这种功能只有在编译时无法确定需要实现哪个接口时才有必要使用。原创 2019-11-26 21:59:57 · 125 阅读 · 0 评论 -
JavaSE基础——Java多线程
一、多线程 1、进程: 进程就是正在运行的程序,确切的来说,就是当一个程序进入内存运行,就变成了一个进程,进程是处于运行状态的中的程序,并且具有一定的独立功能。 2、线程: 线程是进程的一个执行单元,负责当前进程中程序的运行,一个程序中至少有一个线程。一个进程中也可以有多个线程,这样的程序可以称为多线程程序。 3、线程的状态: 4、单线程程序和多线程程序的不同: ● 单线程...原创 2019-11-26 18:16:01 · 155 阅读 · 0 评论 -
Java中递归复制多级文件夹(IO流)
需求:复制多级文件夹代码演示:import java.io.*;public class CopyFolder { public static void main(String[] args) throws IOException { //封装源文件夹和目标文件夹 File srcFolder = new File("F:\\SKT"); ...原创 2019-11-20 14:50:44 · 380 阅读 · 0 评论 -
JavaSE基础——IO流详解(2)其他常用的流和Properties 集合
一、数据输入输出流 数据输入流:DataInputStream 数据输入流允许应用程序从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。DataInputStream的构造方法参数是一个InputStream的对象。DataInputStream 对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。 数据输出...原创 2019-11-19 22:50:53 · 169 阅读 · 0 评论 -
JavaSE基础——IO流详解(1)字节流和字符流
一、IO流的概述 Java中对数据的操作是通过流的方式; IO流用于处理设备之间的数据传输。二、IO流的分类原创 2019-11-18 18:11:56 · 207 阅读 · 0 评论 -
JavaSE基础——异常、File文件类
1. 异常 (1)异常的概述 异常就是Java程序在运行过程中出现的错误。 (2)分类 Throwable 类是 Java 语言中所有错误或异常的超类。 异常的 Exception和Error都是Throwable的直接子类;Exception 又可以分为运行期异常和编译期异常。 (3)异常的处理方式: ● 声明异常throws/...原创 2019-11-13 18:04:19 · 162 阅读 · 0 评论 -
JavaSE基础——Map集合、 Collections(集合工具类)
1. Map 集合 (1)概述 Map接口实现将键映射到值。一个映射不能包含重复的键;每个键最多只能映射到一个值。 (2)Map接口和Collection接口的不同 Map 是双列的,Collection是单列的;Map的键是唯一的,Collection 的子体系Set是唯一的;Map 集合的数据结构只对键有效,和值无关,Collection 集合的数据结构是对元素...原创 2019-11-12 13:00:13 · 164 阅读 · 0 评论 -
JavaSE基础———Set接口中的常用类HashSet、LinkedHashSet和TreeSet
1. HashSet 集合 (1)HashSet 的概述 HashSet 的底层数据结构是哈希表(哈希表是一个元素为链表的数组)。HashSet 不是线程安全的,集合元素可以是null。当向HashSet 中存入一个元素时,HashSet 会调用该对象的HashCode()方法来得到该对象的HashCode值,然后根据HashCode值决定该对象在HashSet 中的存储位置。 ...原创 2019-11-09 22:49:50 · 489 阅读 · 0 评论 -
JavaSE基础———ArrayList、Vector和LinkedList 泛型 可变参
1. ArrayList 类 ArrayList是List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)2. Vector 类 (1)Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用...原创 2019-11-06 18:45:42 · 129 阅读 · 0 评论 -
JavaSE基础———正则表达式、Date类SimpleDateFormat类和Calender类
1. 正则表达式(1)正则表达式的组成规则:A:字符x 字符 x。举例:'a'表示字符a\\ 反斜线字符。\n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D')B:字符类[abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) [0-9] 0到9的...原创 2019-11-04 19:39:22 · 178 阅读 · 0 评论 -
JavaSE基础———StringBuffer StringBuilder Arrays和基本数据类型包装类
1.StringBuffer类 (1)StringBuffer类概述 在学习Sring类时,我们知道当你创建一个String类的对象时,它的值在创建之后是不可变的,因为它的存储位置在方法区里面的字符串池,所以StringBuffer的出现就解决了上述的问题。我们查询API文档时,称StringBuffer为可变的字符序列,通过某些方法可以改变该序列的长度和内容。其实StringBuff...原创 2019-10-30 21:22:01 · 158 阅读 · 0 评论 -
JavaSE基础——Object类中的常用方法
JAVA学习day11 JavaSE基础——Object类中的常用方法1. object 类的概述 Object 类是类层次结构的根类,每个类都使用Object类作为父类;所有类(包括数组)的对象都实现这个类的方法。2. Object 类的hasCode方法 public int hasCode() ● 返回该对象的一个哈希码值。默认情况是根据对象的地址来计算。 ● 哈希码...原创 2019-10-21 20:37:14 · 237 阅读 · 0 评论 -
JavaSE基础——构造方法 对象的创建步骤 static关键字
JAVA学习day07 JavaSE基础——构造方法 对象的创建步骤 static关键字1.1 构造方法的概述和作用 构造方法是为了创建对象并对对象中的成员进行初始化; 格式:方法名和类名相同,没有返回值类型和具体的返回值。1.2 构造方法的重载 如果我们没有自己创建构造方法,系统将自动提供一个空参构造方法; 建议用自己给的空参构造方法。下面我们通过一个案例演示构造方法:publ...原创 2019-10-07 13:04:17 · 158 阅读 · 0 评论 -
JavaSE基础——面向对象
JAVA学习day05 JavaSE基础——面向对象1.1 理解什么是面向过程,什么是面向对象。面向过程与面向对象都是我们编程中,编写程序的一种思维方式。面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程。例如:洗衣服这件事,面向过程就是思考怎么洗这件衣服,先泡衣服、搓衣服、漂洗、拧干、晒衣服。这就是面向过程的思维方式。面向对象的程序设计方式,是遇到一件事...原创 2019-10-06 22:41:22 · 156 阅读 · 0 评论