- 博客(54)
- 收藏
- 关注
原创 网络编程的学习
方法:InetAddress getLocalAddress():返回对方Socket中的IP的InetAddress对象 int getLocalPort():返回对方Socket的IP地址 int getPort():返回对方Sorket的端口号 void close()throws IOException :关闭Socket,释放资源 InputStream getInputStream() throws IOException:获取与Socket相关联的字节输入流,用于从Socket中读数据。
2024-08-19 20:54:45
574
原创 面向对象知识点总结(背)
构造方法可以重载,参数列表不同即可,如果程序员没有提供构造器,系统自动提供一个无参构造器,程序员提供构造器,系统就不会提供无参构造器了如果需要使用,得自己提供。址传递:引用数据类型之间的变量的赋值操作,实际参数指向的对象发生改变,形参和实参执行同一个对象的地址,形参的操作会影响实参;继承里的构造器:默认调用父类的无参构造器,如果父类没有无参构造器,必须在子类中显式调用父类的一个有参构造器。提供一个public的,静态的方法,负责实例化对象,第一次调用会初始化单例,后续调用则返回已存在的单例。
2024-08-18 17:10:16
695
原创 Thread的构造器及方法
线程的礼让方法,表示让出cpu的使用权,会进入就绪状态。不过,下一个时间片段还可能是该线程的。解析: 线程的睡眠方法,可以让当前线程进入休眠状态,进入阻塞状态,不再占用cpu的使用时间。表示当前线程去打断另外一个线程。另一个线程结束后,当前线程。2. 前台线程: 在表面运行的,能看到的。3. 后台线程:就是守护线程,即daemon的值为true。注意: 所有的前台线程都结束了,后台线程就会立即结束。注意: 是在当前线程中调用另一个线程的打断方法。注:main方法:本质上就是一个线程。
2024-08-15 21:18:16
480
原创 线程的创建
Callable是函数式接口,里面的 V call() 相当于Thread或者runnable的run方法,即任务代码书写的位置。1. 先获取Callable对象,重写里面的call方法, call相当于run, 但是call有返回值。相比前两种方式功能更强大一些。第二种: 使用Runnable接口的实现类或者匿名内部类的方式,来创建线程对象。2. 再获取FutureTask对象,将上面的Callable对象传入构造器。第一种: 使用Thread的实现类或者匿名内部类的方式来创建线程对象。
2024-08-15 08:36:13
270
原创 alambda
1. Lambda表达式实际上就是匿名内部类的简化版本2. Lambda表达式是JDK1.8引入的一个最重要的新特性,另外一个就是集合的流式编程3. Lambda表达式是java为了扩展函数式编程引入的。4. Lambda表达式可以理解为是一个匿名函数(匿名方法:方法名没有名字)5. Lambda表达式只能作用于函数式接口(有且只有一个抽象方法的接口)
2024-08-14 21:29:31
330
原创 反序列化与字符输入输出流
1. 序列化时,程序每执行一次,都会先写一个流头。如果是追加模式,那么文件中可能会有多个流头2. 反序列化时,也就是读取文件时,默认是只读取一次流头,剩下的内容全部认为是每个对象的信息。所以文件中如果有多个流头,可能会将除了第一个流头外,剩下的流头字节序列当成对象信息进行解析,会报异常:java.io.StreamCorruptedException: invalid type code: AC。
2024-08-13 20:34:08
516
原创 缓冲字符流、文件字符流
字节缓冲输入流:1.是一个高级流,内部维护一个缓冲区,默认8KB2.读取文件数据时一次性尽可能读取到缓冲区大小的字节3.read方法从缓冲区获取数据:当缓冲区全部读完,会再次从磁盘上读取数据存储到缓冲区4.常用构造器 BufferedInputStream(InputStream is) BufferedInputStream(InputStream is,int size)
2024-08-12 18:48:08
288
原创 File类型&&IO流基础&&字节流&&转换流
在程序中,我们使用java.io.File这个类来描述和操作磁盘上的一个文件或文件夹(目录)。File这个类,能新建、删除、移动,重命名文件或文件夹,也能获取或者修改文件或文件夹的信息(如大小,修改时间等),但File不能访问文件里的内容。如果需要访问文件里的内容,则需要使用输入/输出流。
2024-08-12 16:49:06
421
原创 集合的框架完结篇(之三)
1.是集合框架中的另外一个父接口2. Map存储的数据的特点: 一对一的关系映射, 称之为Key-Value-Pair.3. Map接口最常用的两个子类,是HashMap和TreeMap.- HashMap: 底层使用了Hash表和红黑树的数据结构(jdk1.8以前使用的是hash表+单向链表)- TreeMap: 底层使用的二叉树。4. Map的key不能重复,但是可以为null。value可以重复。
2024-08-12 10:16:10
378
原创 集合的框架(之二)
特点:1. 元素有序,并且可以重复。ArrayList:动态数组+各种方法 LinkedList: 双向链表+各种方法 对于随机访问来说, ArrayList要高于LinkedList。对于频繁的插入和删除来说, LinkedList要高于ArrayList.基于List接口,两个实现类的方法基本一致。
2024-08-11 21:32:07
808
原创 集合的框架(之一)
集合是一个可变的容器,可以随时向集合中添加元素,也可以随时从集合中删除元素。另外,集合还提供了若干个用来操作集合中数据的方法。集合里的数据,我们称之为元素(elements);。
2024-08-11 11:25:17
966
原创 集合的学习
集合Collection,也是一个数据容器,类似于数组,但是和数组是不一样的。集合是一个可变的容器,可以随时向集合中添加元素,也可以随时从集合中删除元素。另外,集合还提供了若干个用来操作集合中数据的方法。集合里的数据,我们称之为元素(elements);。
2024-08-08 18:57:47
835
原创 九字符串的学习
StringBuilder和StringBuffer,都是一个可变的字符序列(即可变的字符串),对象创建后可以通过调用方法来实现字符序列的改变,StringBuilder和StringBuffer类中的方法完全相同。由于字符串是不可变的,因此对字符串进行操作的时候,比较的麻烦,每次的操作都需要实例化一个 临时的空间来存放结果,效率不高。在 JDK 1.7 时,字符串常量池被从方法区转移至 Java 堆中,注意并不是运行时常量池,而是字符串常量池被单独转移到堆,运行时常量池剩下的东西还是方法区中。
2024-08-06 18:53:50
349
原创 八、异常的学习
继承Exception 或者继承RuntimeException ,定义两个构造器即可。模拟已经存在的子类异常继承Exception的自定义异常,是编译时异常继承RuntimeException的自定义异常,是运行时异常 throw和throws的特点:throw是用在方法里,用于将一个异常对象抛出,自己不处理,抛给调用者,谁调用这个方法,谁就是调用者。throws是用在方法的定义上。表示告诉调用者需要处理的异常类型。
2024-08-04 10:15:16
962
原创 IDEA中静态资源方法
2. 在模块名称下,创建一个目录Directory, 命名statics。用于存储各类静态资源,比如图片,音乐,视频,第三方配置文件等。3. 将其设置为classpath,即资源根路径。1. 创建模块名称: 例如TetrisGame1。4.将图片、视频、音频等拷贝过来即可。
2024-07-31 16:15:02
212
原创 枚举、成员内部类
在匿名内部类中,一般情况下不去添加新的成员(属性、方法),因为即便进行了添加,得到的对象也是向 上转型后的对象,不能访问子类中的成员。在匿名内部类中,一般是用来做方法的重写实现的。定义在一个类的内部,与这个类的成员(属性、方法)平级,并且使用static修饰的类。1. 定义在一个类的里面,与类的其他成员是平级关系。4、在方法中定义的内部类,和局部变量的用法一样。出了作用域就失效了。没有名字的内部类,内部类,通常是需要配合其他的类或者接口一块使用的。1、访问权限可以是任意的权限,类似于一个类中的成员。
2024-07-30 21:38:20
229
原创 抽象类、接口
由于继承这个显著特点,我们可以将子类设计的更加具体,而父类更加一般化,通用化。父类可以封装不同子类的共同特征或者共同行为.而有的时候,父类中封装的方法无法具体完成子类中需要的逻辑,因此我们可以将此方法设计成抽象方法,即使用关键字abstract进行修饰。而有抽象方法的类,也必须使用abstract关键字进行修饰,因此我们称之为抽象类无{},有abstract有抽象方法的类是抽象类子类要实现父类的所有抽象方法,或子类也声明为抽象类不能final可以没有抽象方法。
2024-07-30 20:16:58
478
原创 面向对象3大特征------多态
多态:从字面上理解,就是多种形态,多种状态的含义,在这里,指的是一个对象具有多种形态的特点。说的再简单点,就是一个对象可以从一种类型转换为另外一种类型。有向上转型和向下转型两种形式。面试时可以多加一种:方法的多态(重载和重写)
2024-07-28 22:41:25
201
原创 面向对象3大特征------继承之二方法重写、object、final、static
叫做override 子类中对父类方法重新实现为什么重写?因为父类的方法逻辑不能满足子类的需求,子类需要修改逻辑注解@Override:这个注解,用在重写的方法之前,表示验证这个方法是否是一个重写的方法。如果是,程序没有问题。如果 不是,程序会报错。因为我们在进行方法重写的时候,没有什么提示的,因此,在进行重写之前,最好加 上去这个注解。误区:加了@Override就是重写,没有加@Override就不是重写。这种说法是错误的!@Override只是进行的一个语法校验,与是不是重写无关。
2024-07-28 22:34:46
705
原创 math random scanner
是数学工具类,提供数学方面的功能方式。使用方式:直接使用类名,具体方法名常用函数:max() min() random()取值范围[0,1) ,与random 的nextdouble效果相同 abs()绝对值 pow()幂函数 sqrt()平方根 cbrt()立方根。
2024-07-28 22:06:24
472
原创 面向对象3大特征------继承之一---构造器
是面向对象最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力已有的类,叫==父类==,又叫基类,超类。派生出来的新类,叫==子类==,也叫派生类。使用关键字extends 来表示子类继承了父类。
2024-07-26 20:36:23
457
原创 面向对象的三大特征--封装
封装,英文单词Encapsulation。从广义的角度来说,将一块经常要使用的代码片段,定义到方法中,是封装。将多个方法和多个状态数据定义到类体中,也是一种封装。从狭义的角度来说,java的封装,就是把类的属性私有化(private修饰),再通过公有方法(public)进行访问和修改;
2024-07-26 20:13:21
394
原创 Java数组
使用new的两种方式:1.动态初始化第一种方式: new+直接初始化具体元素第二种方式: new+长度2. 静态初始化数据类型[] 变量 = {元素1,元素。
2024-07-24 21:10:04
629
原创 Javad 的Method
- 返回值类型是其他类型的方法,return关键字必须添加,并且return 后必须有。第一种类型:void, 无类型, 表示方法在执行完毕后,不需要返回任何数据。2. 参数列表的语法: 是0个以上的变量的声明语法。同一个类中,方法名相同,参数类型列表不同(方法签名不同)。方法的调用: 没有学习面向对象前,方法都使用static修饰。第二种类型:java中的任一类型,包括程序员自定义的类型。1. 参数列表具体指的是定义期间方法名后的参数的类型列表。1. 方法在定义是,必须规则方法的返回值类型是什么。
2024-07-23 21:53:47
273
原创 Scanner类
步骤2: 创建扫描器对象,并使用扫描器的变量引用该对象 Scanner scan = new Scanner(System.in);:所有的nextXXX方法,都有阻塞效果,即阻止程序向下执行,除非扫描到数据并结束扫描,阻塞效果才会消失。: 扫描控制台输入的boolean类型的数字。: 扫描控制台输入的double类型的数字。: 扫描控制台输入的float类型的数字。: 扫描控制台输入的byte类型的数字。: 扫描控制台输入的short类型的数字。: 扫描控制台输入的int类型的数字。
2024-07-22 21:43:52
163
原创 运算符之关系运算符、三目运算符
4. 通常三目运算的最终结果,需要使用一个变量来接受,该变量的类型应该是值1或值2中的一个。1. 该运算,依然遵守混合运算时转成取值范围最大的那种类型。2. 值1和值2,可以是变量,也可以是具有返回值的表达式。boolean类型的变量或者表达式?3. 值1和值2的最终类型,需要能自动类型转换。前的式子或变量返回true, 则使用值1,前的式子或变量返回false,则使用值2。三目运算符(又称三元运算符,条件运算符)作用:用于判断两边的大小关系。返回值: boolean类型。
2024-07-22 21:28:31
187
原创 运算符之逻辑运算符
针对于短路与来说: 第一个是false时,不再执行第二个条件,管它是true还是false.针对于短路或来说: 第一个是true时,不再执行第二个条件,管它是true还是false。特点: 第一个条件如果已经可以确定最终结果,那么第二个条件就不再执行,节省时间。|| 短路或 : 一真则真,全假为假。&&: 短路与 : 一假则假,全真为真。在java中,一般研究的是短路逻辑运算符。
2024-07-22 20:44:17
230
原创 注释\运算符之赋值运算符
: 最简单的赋值运算符, 将等号后的表达式的结果或者变量的值赋值给等号前面的变量。文档注释: /** */ 一般用于类体上面或者是方法上面。+=: 如: a+=b 相当于 a = a + b。-=: 如: a-=b 相当于 a = a - b。*=: 如: a*=b 相当于 a = a * b。/=: 如: a/=b 相当于 a = a / b。%=: 如: a%=b 相当于 a = a % b。注释,有三种, 文档注释,多行注释,单行注释。
2024-07-22 20:34:26
264
原创 Java的入门介绍(IntelliJ Idea)
工作空间(eclipse中),new project.项目1 项目2注意:idea是没有工作空间这个概念的。idea的new project 相当于 eclipse的 workspace;idea的new module 相当于 eclipse的 new project;
2024-07-22 20:12:24
187
原创 Java语言基础----常用运算符
最终除如果得到一个浮点型的结果,那么这个浮点型的数字 会自动的转成整型数字,浮点型转整型,舍去小数点后面所有的内容,直接保留整数部分。短路操作:如果在进行逻辑运算的时候,前半部分的内容可以决定最终的结果,则后半部分不参与运算。放变量前:先对这个变量进行自增、自减操作,然后再使用这个变量的值。放变量后:先使用这个变量的值,然后再对这个变量进行自增、自减操作。自增、自减运算符,可以放在变量的前面,也可以放在变量的后面。|:或,两假即为假,有任意一个为真,结果就是真。:非,非真即假,非假即真。
2024-07-19 19:14:16
396
原创 Java语言基础----数据类型
int字面量,只要没有超出byte或者short的范围,是可以直接赋值给byte或short类型的变量的 (自动截断高位的0或1)Java 的浮点型字面量默认为 double 型,声明 float型字面量时,须在后加 f或 F。Java各整数类型都有固定的数范围和字段长度,这样不受具体OS的影响,保证了java的可移植性。与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。整数字面量,也叫整数直接量(literal),就是直接写出来的整数,是int类型。
2024-07-19 19:07:54
226
原创 Java语言基础----标识符
以下只是命名约定,不按照约定命名规则命名代码也不一定是错误的,但在Java代码的规则中普遍遵循“约定大于配置”,因此在实际代码开发中应尽量遵循约定的命名规则;驼峰命名法: 在遵循见名知意的前提下,有些时候一个标识符的命名可能比较长,由多个单词组成。小驼峰: 首单词除外,从第二个单词开始,每一个单词的首字母都是大写的。ava语言中,对于变量,常量,函数,语句块来说,都是有名字的,这些。可以由字母,数字,_和$,这四种的任意多个组成,但是数字不能开头。大驼峰: 组成一个标识符的每一个单词的首字母都是大写的。
2024-07-19 19:03:20
163
原创 Java语言基础----开发环境搭建
为了更好地学习JDK,初学者需要对JDK安装目录下的子目录及文件的作用有所了解,接下来分别对JDK安装目录下的子目录进行介绍。bin目录:该目录用于存放一些可执行程序,如javac.exe(Java编译器)、java.exe(Java运行工具)、jar.exe(打包工具)和javadoc.exe(文档生成工具)等。include目录:由于JDK是通过C和C++实现的,因此在启动时需要引入一些C语言的头文件,该目录就是用于存放这些头文件的。
2024-07-19 19:01:08
802
原创 浮动的特点
4. 浮动元素的哥哥如果没有设置浮动,那么该浮动元素不会浮动到哥哥的左右。如果哥哥也设置了浮动,那么该元素最多和哥哥一样高。行内元素如果设置了浮动,那么就不具备行内元素的独有特点,而是可以设置各种属性。浮动的块元素的宽和高默认情况下是被内容撑起来的,当然也设置具体的宽高。3. 元素一旦设置浮动,下面还没有设置浮动的兄弟元素会向上移动。5. 浮动元素不再满足水平布局的强制成立等式。1. 浮动元素脱离文档流, 可以向左或向右移动,属性。2. 浮动元素不会超出父元素的边框。- right: 向右浮动。
2024-07-18 20:30:59
158
原创 width、height等的单位
最基本的单位:像素, 即屏幕上的分辨率, 1920x1080, 表示整个屏幕上有这些个点。一个点就是一个像素。分比单位: 是子元素针对于父元素的百分比。会随着父元素的属性改变而改变。rem单位: 也是一个相对单位,相对的是整个页面的根元素的字体大小,em单位: 是一个相对单位,相对本元素的字体大小。1em=1个font-size。
2024-07-18 20:27:37
158
原创 样式的继承
CSS针对于样式继承的设计,是为了减少开发过程中的代码量,使子元素具有父元素的一些样式。父元素设计好的样式,子元素不需要再重复设置。比如字体风格,大小,颜色等。但是某些样式继承不了,比如背景,布局相关的样式。
2024-07-18 20:25:38
129
原创 标签、类、id、通配符选择器
border-inline-xxx: xxx可以是width,color,style. 设置左右边框的大小,颜色,线条。不同的元素的class的值可以相同,表示同一类的元素。2. 在选择器上的区别:class选择器以.开头,id选择器以#开头。类选择器是以小圆点开头的样式选择器,小圆点后面是具体的class名称。id:相当于身份证号,因此id的值是不可以重复的,具有唯一性。1. 在属性上的区别:class的值可以重复。通配符选择器,就是*选择器, 表示所有的元素都被选中。三、id选择器的学习。
2024-07-18 20:23:09
200
原创 内联、内部、外部样式表
将样式单独封装到一个文件在,文件扩展名:.css。然后用link标签,将样式文件引入发HTML页面中。把样式写在head子元素style里,此时需要选择器来定位设置样式的元素。扩展:live sever插件:简易的服务器插件,端口号默认5500。自动实时刷新,可以用浏览器打开HTML等文件。将样式写在元素开始标志中的style中。高: 默认自己内容区撑起的高度。diy: 宽度:默认默认撑满内容区。
2024-07-18 20:17:50
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人