
javaSE
文章平均质量分 69
JavaSE学习笔记
mizui_i
这个作者很懒,什么都没留下…
展开
-
javaSE-jdk1.8新特性
一.Lambda表达式1.概述Lambda表达式是一种没有名字的函数,也可称为闭包,是Java 8 发布的最重要新特性。本质上是一段匿名内部类,也可以是一段可以传递的代码。还有叫箭头函数的…2.闭包的概念闭包就是能够读取其他函数内部变量的函数,比如在java中,方法内部的局部变量只能在方法内部使用,所以闭包可以理解为定义在一个函数内部的函数闭包的本质就是将函数内部和函数外部链接起来的桥梁3.特点允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambd原创 2021-12-02 15:58:57 · 743 阅读 · 0 评论 -
javaSE-反射
一.概述1、Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。2、加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射二.反射相关的APIjava.lang.Class:代表一.原创 2021-12-02 15:38:43 · 252 阅读 · 0 评论 -
javaSE-正则表达式
一.概述正则表达式可以用来搜索处理编辑文本,很多语言都支持正则表达式二.正则表达式语法元字符 描述 \ 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配\n。“\n”匹配换行符。序列“\”匹配“\”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Mul原创 2021-12-02 15:37:04 · 184 阅读 · 0 评论 -
javaSE-网络编程
这一块太过高深,所以一下就简单的写了一个客户端和一个服务端客户端:package homework;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Hw02SocketClientByTcp { public static void...原创 2021-12-02 15:21:03 · 77 阅读 · 0 评论 -
javaSE-多线程
一.基本概念1.程序,进程,线程程序:就是一段静态代码段进程:正在运行的程序,有生命周期-创建,就绪,执行,阻塞,销毁,进程是操作系统分配资源的最小单位线程:进程可进一步细分成多个线程,是程序内部的一条执行路径,它是调度和执行的基本单位,每个线程拥有独立的运行栈和程序计数器,他们共同享有堆内存,这使得线程之间的通信变得简单一个java程序,至少有三个线程,main()主线程,gc()垃圾回收线程,异常处理线程,如果发生异常会影响主线程2.单核和多核CPU单核cpu实现的多线程是一种假的原创 2021-12-02 15:19:51 · 122 阅读 · 0 评论 -
javaSE-File类与Properties
一.File类1.File类的特点文件和文件目录路径的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以作为参数传递给流的构造器2.File类的构造方法3.File类的使用因为windows和UNIX路径之间的原创 2021-12-02 15:06:22 · 187 阅读 · 0 评论 -
javaSE-IO流与序列化
一.概述1.概念流就是一组有顺序的,有起点和终点的字节集合,它的本质就是设备之间(例如磁盘与内存之间)进行数据传输.2.分类按照数据的处理类型不同,分为字节流和字符流按照流的方向不同分为输入流和输出流(入和出都是相对于内存而言的)按照功能不同分为字节流(直接操作数据源)和处理流(对其他流进行处理)3.抽象类定义提示:带Stream的都是字节流(万物皆可字节流)带Reader或者Writer的都是字符流(这种流仅限于处理文本数据)二.字节流1.概述记住一句话:计.原创 2021-11-30 16:42:25 · 206 阅读 · 0 评论 -
javaSE-集合
一.类图collection上图中的Iterator接口在1.5之后就由Iterable接口代替了,Iterable接口封装了一个方法叫做iterator,该方法返回一个iterator对象,而每个iterator接口的实现类都分别写在了各个集合类的实现类中,以内部类方式实现iterator接口用ArrayList举个例子:public class ArrayList<E> extends AbstractList<E> implement...原创 2021-11-30 16:32:41 · 432 阅读 · 0 评论 -
javaSE-装箱与拆箱
一.基本类型包装类1.概述因为需要更方便的使用基本数据类型,所以我们将基本数据类型封装成类2.基本数据类型对应的包装类3.装箱与拆箱概念装箱就是自动将基本数据类型转换为包装器类型拆箱就是自动将包装器类型转换为基本数据类型在java1.5之前是没有自动装箱和拆箱的Integer i = new Integer(66);//1.5之前必须这么写例子:Integer i = 10; //装箱int n = i; //拆箱二.深入理解装箱与拆箱1.装..原创 2021-11-30 16:22:27 · 272 阅读 · 0 评论 -
javaSE-java常用API
一.字符串相关类1.String类的特性String 是一个final类,代表不可变的字符序列字符串是一个常量,他们的值在创建后不可以修改字符串的内容是一char数组的形式存储如下:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage....原创 2021-11-30 16:19:36 · 376 阅读 · 0 评论 -
javaSE-设计模式
1.概述 代表了最佳的实现方式,是一些有经验的开发人员,通过开发总结出来的一些经验和错误,用来解决一些问题.世上本没有路,走的人多了便有了路2.单例模式为了节约内存,让一个类只能被实例化一次第一步:构造方法私有化第二步:需要自己创建一个对象,并且对外提供一个公共静态方法来获取这个对象第三步:创建一个静态变量,用来存储当前类的对象根据对象的创建时机不同,分为两种 1.类加载时就创建对象的叫做饿汉模式 2.在第一次使用的时候创建对象叫做懒汉模式2.1饿汉模式p原创 2021-11-30 15:55:03 · 102 阅读 · 0 评论 -
javaSE-内部类
1.概述当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内 部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使 用内部类 在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者 称为外部类。 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完 整的名称。 内部类最大的优点,可以使用外部类私有化数据2.分类1.静态内部类 使用static修饰的内部类,相当于静态变量2.成员内部类 没有st原创 2021-11-30 15:53:38 · 77 阅读 · 0 评论 -
javaSE-类与类之间的关系
目录1.继承2.实现3.依赖4.关联5.聚合6.组合1.继承 继承,又叫泛化关系 , 使用关键字 extends表示 class 子类 extends 父类{} 类和类是单继承 interface 子接口 extends 父接口1,父接口2…{} 接口和接口之间是多继承2.实现 实现 implements 类和接口之间 是多实现关系 class 子类 implements 父接口1,父接口2…{}3.依赖 某个类的方法原创 2021-11-23 00:00:42 · 193 阅读 · 0 评论 -
javaSE-抽象和接口
目录一.抽象1.abstract修饰符2.抽象类二.接口1.语法:2.注意事项2.优点:三.接口在1.8之后的新特性一.抽象抽象类不可以创建对象(但是有构造方法)抽象方法一定是个成员方法1.abstract修饰符修饰的类是抽象类修饰的成员方法是抽象方法,没有方法体2.抽象类**定义:**被abstract修饰的类就是抽象类特点:抽象类不能被实例化,只能被继承一般抽象类中,有功能定义,但是没有功能的实现,必须让子类实现抽象类也可以原创 2021-11-22 18:46:03 · 330 阅读 · 0 评论 -
javaSE-Object类
目录1.概述2.equals()方法3.finalize4.toString()方法5.hashCode()方法1.概述Object是所有类的祖类,其中所有的方法其他类都有2.equals()方法public boolean eauqls(Object obj){ return this == obj;}**设计目的:**比较两个对象是否相等,是否为同一个对象**注意:**Object中的equals方法,默认比较内存地址==和equals的区别..原创 2021-11-22 18:43:35 · 95 阅读 · 0 评论 -
javaSE-封装-继承-多态
目录一.封装1.概述2.包机制3.权限控制修饰符二.继承1.概述2.语法3.Super关键字1.super和this的区别2.解决的问题3.实例语句块的执行时机4.方法重写5.final关键字三.多态 1.编译时多态 2.运行时多态四.软件设计六大原则1.单一职责原则2.里氏替换原则3.依赖倒置原则4.接口隔离原则5.迪米特原则(最少朋友原则)6.开闭原则一.封装1.概述不直接提供访问的数据,而是提原创 2021-11-22 18:41:35 · 491 阅读 · 0 评论 -
javaSE-类与对象-构造器-this关键字-static关键字
目录一.面向对象1.1概述1.2面向过程和面向对象1.3类和对象的区别1.4实例化过程/创建对象的过程1.5 对象的使用和特征1.6常见异常1.7 javaBean二.构造方法2.1概述2.2构造方法和普通方法三.this关键字四.static1.静态变量2.静态方法3.静态语句块4.实例语句块5.类加载6.静态和成员一.面向对象1.1概述面向对象(Object Oriented)是一种思想,将数据和方法作为整体来看待,原创 2021-11-22 18:27:46 · 303 阅读 · 0 评论 -
javaSE-数组
目录一.概述二.应用场景三.数组声明1.静态声明2.动态声明3.数组传递(第三种声明方式,静态声明)四.基本操作1.获取长度2.设置数据3.遍历五.常见异常六.传值和传引用七.API八.二维数组1.声明2.使用九.Scanner类十.排序1.交换两个变量的值2.冒泡排序3.选择排序4.使用API一.概述数组:是引用数据类型(类,数据,接口),数组可以用来存储多个相同类型的数据,数组是线性的数据结构,原创 2021-11-22 18:24:15 · 167 阅读 · 0 评论 -
javaSE-递归
目录1.概述2.常见问题3.例子1.概述递归:就是在当前方法中,调用自己(当前方法)基本思想:递归和迭代是等价的,而迭代就是循环,所以循环也是重复做某件事注意:如果循环能做到的,就不要使用递归,因为递归效率低,比较耗费内存应用场景: 一般树状结构,需要使用递归来完成递归也要遵循循环三要素初始值循环条件步长2.常见问题栈内存溢出java.lang.StackOverflowError3.例子计算1-n的加和public sta原创 2021-11-22 18:14:51 · 322 阅读 · 0 评论 -
javaSE-方法-重载-内存划分
一.方法1.1概述和作用一堆代码的集合,可以重复使用1.使程序变得简洁更清晰2.有利于程序维护3.提高开发效率4.提高代码重复性/复用性1.2方法声明[修饰符列表] 返回值类型 方法名(参数列表){方法体}[]:0-n个1.方法修饰符列表,是可选的:权限控制:public private protected,默认(不写)static(声明静态),abstract,synchronized,finall2.返回值类型:11中数据类型的任意一种,或者是void原创 2021-11-22 18:11:59 · 112 阅读 · 0 评论 -
javaSE-流程控制
一.顺序结构从上往下,从左到右执行二.分支结构通过某个判断条件,选择不同的执行分支2.1单分支有不执行情况if(boolean表达式){ //success do}2.2双分支肯定会执行if(boolean表达式){ //success do}else{ //fail do}2.3多分支2.3.1 if elseelse结尾肯定会执行,否则有不执行情况,多分支只会有一个执行if(boolean表达式){ //...原创 2021-11-22 18:06:00 · 223 阅读 · 0 评论 -
javaSE-运算符
原码,反码,补码原码:二进制表示法,最高位是符号位,"0"表示正,"1"表示负,其余是数值位反码:正数的反码与原码相同,负数的反码就是对其原码逐一取反,符号位除外补码:正数的补码与原码相同,负数的补码是在反码的末尾加1注意:我们读取的十进制是根据原码来读取,而在内存中,数值都是以二进制补码形式保存的。一.算数运算符1.种类2.i++和i–的区别i++:先赋值后加1++i:先加1后赋值只要记住程序是从左往右运行的就行3.优先级优先级:单目>双目>三目原创 2021-11-22 17:51:13 · 182 阅读 · 0 评论 -
java概述-数据类型-变量
目录一、java概述二、java特性三、注释1.单行注释2.多行注释3.多行注释(文档注释)四、关键字解释五、数据1.基本概念2.数据的单位3.存储方式六、数据类型1.概述2.分类3.命名规范4.类型使用整形浮点型字符型布尔补充:转义符5.默认值6.数据类型转换七、需要注意的知识点八、常量、变量、字面量一、java概述创建时间:1991年,命名OAK,是SUN公司推出,1995开始以java名义推出原创 2021-11-22 17:42:50 · 130 阅读 · 0 评论