自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Java反射

反射:允许对成员变量,成员方法和构造方法的信息进行编程访问。所以,想要获取 成员变量,成员方法和构造方法,得首先获取 class对象。

2024-06-30 23:08:03 487

原创 Java网络编程

在网络通信协议下,不同计算机上运行的程序,进行的数据传输(计算机跟计算机之间通过网络进行数据传输)常见的软件架构:CS 和 BS① 不需要开发客户端,只需要 页面 + 服务端② 用户不需要下载,打开浏览器就可以直接使用③ 如果应用过大,用户体验受到影响(图片等资源依靠网络传输,往往分辨率不会太高)① 需要开发客户端,也需要开发服务端② 用户需要下载和更新的时候太麻烦③ 画面可以做的非常精美,用户体验好(图片等资源都是存储在本地文件中的,不依靠网络)

2024-06-30 16:10:58 947

原创 Java多线程

进程是程序的基本执行实体(每个软件都有对应的一个进程)线程是操作系统能够运行调度的最小单位。它被包含在进程之中,是进程的实际运作单位。(简单理解:应用软件中相互独立,可以同时运行的功能,就是不同的线程)CPU从上往下依次运行,不会切换到其他代码中运行CPU会在不同程序间进行切换,将等待的时间充分利用起来简单理解:多线程可以让程序同时做多件事情,从而提高效率。线程池就是一个容器,初始状态下是空的。当给线程池提交一个任务时,线程池就会自动创建一个线程。

2024-06-28 21:50:13 879

原创 Java基础:IO流

操作本地文件的字节输出流,可以把程序中的数据写到本地文件中。① 创建字节输出流对象② 写数据③ 释放资源//需求:写出一段文字到本地文件中(不含中文文字)//1.创建对象//2.写数据//3.释放资源字符输出流的细节:① 参数可以是 字符串表示的路径 或者是 File 对象② 如果文件不存在,会创建一个新的文件,但是要保证父级路径是存在的。③ 如果文件已经存在,则会清空该文件中的数据,重写写出新的数据。

2024-06-24 20:47:10 748

原创 Java异常和文件

Question:为什么需要自定义异常呢?假设现在要录入一个学生信息,姓名长度需要在 3~10 之间,年龄需要在 18~40 之间。那么在 set 方法进行赋值时,数据不正确的话,该抛出何种异常呢?我们发现,找不到一个合适的异常来描述这两个问题信息。所以只能被迫采用运行时异常的父类 RuntimeException。但这样的缺点是:无法单独处理这两个异常的信息,不能把姓名和年龄的处理方案分开。所以,我们需要自定义异常类来描述这两个异常。

2024-06-17 15:21:55 571

原创 Java基础:Stream流和方法引用

可以理解为一条流水线,可以对流水线上的数据进行各种操作(筛选、打印等)。结合了 Lambda表达式,简化集合、数组的操作① 先得到一个 Stream 流,将数据放上去② 利用 Stream 流中的中间方法进行各种操作。③ 利用 Stream 流中的终结方法进行各种操作。方法引用:把已经存在的方法拿过来用,当作函数式接口中重写的抽象方法的方法体。方法引用可以比 Lambda表达式 的写法更加简便。① 引用处必须是函数式接口。② 被引用方法必须已经存在(如果不存在,需要自定义方法或者使用第三方工具类)

2024-06-14 16:56:40 1003

原创 Java集合进阶

方法的形参是可以发生改变的(JDK5开始)。数据类型... 变量名(如:int... args)可变参数事实上底层就是一个数组,但这个数组无需手动创建,java会自动创建好。Collectons 不是一个集合,而是集合工具类,提供了一系列操作集合的方法。不可以被修改的集合(添加、删除、修改元素均不可以)。① 如果某个数据不能被修改,把它防御性的拷贝到不可变集合中是个很好的实践。② 当集合对象被不可信的库调用时,不可变形式是安全的。

2024-06-12 21:08:43 1078

原创 Java泛型

是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。<数据类型>泛型只能支持引用数据类型,基本数据类型需要变成其包装类。:在JDK5之前,没有泛型的时候,集合如何存储数据?我们注意到,如果没有泛型,add 方法的形参为 Object 类型。所以使用 add 方法可以添加任意类型的元素。由于添加的数据都是Object类的直接或者间接子类,所以我们可以使用多态的方式,获取数据。但我们知道,多态的缺点:不能访问子类的特有功能。

2024-06-05 21:16:40 955

原创 Java常用API(三)

Arrays是一个用于操作数组的工具类。

2024-05-31 20:52:46 987

原创 Java包装类

对于基本数据类型,在变量中记录的是真实的数据值。而对于基本数据类型的包装类, 本质是创建了一个对象,对象当中记录对应的数据值。即:包装类就是用一个对象,把基本数据类型给包起来。

2024-05-28 21:32:39 664 2

原创 Java时间类--JDK8

① JDK7的时间对象如果需要比较大小的话,必须都先转换成毫秒值;JDK8则不需要,可以直接比较。② JDK7的时间对象可以修改,在多线程环境下就会导致数据不安全;JDK8不能修改,不会发生安全问题。JDK8时间类一共有10个类,前3个类似于JDK7中的Date类,第4个类似于JDK7中的 SimpleDateFormat 类,第5~7类类似于JDK7中的 Calendar 类,最后三个类用于计算时间间隔。

2024-05-28 15:45:17 767

原创 Java时间类--JDK7

Date类是一个JDK写好的JavaBean类,用来描述时间,精确到毫秒。利用空参构造创建的对象,默认表示当前系统时间。利用有参构造创建的对象,表示指定的时间。事实上,我们可以简单认为Date类的定义如下:实际源码如下://1.无参构造 --> 创建对象表示当前时间//2.带参构造 --> 创建对象表示指定时间(距离时间原点一年以后)注:①带参构造中的形参,表示距离时间原点多少毫秒。比如 new Date(1000L)表示距离时间原点1000ms,也就是1s。

2024-05-26 16:52:03 712

原创 java正则表达式

matches("正则表达式") 校验字符串是否满足规则,满足返回true,不满足返回false① &&表示交集,但&并没有任何含义,只是一个特殊符号,表示匹配的字符串是否是该符号②[ ]只能匹配一个字符,如果字符串内有多个字符,则会返回false③. 表示任意一个字符均可,但 \n 回车符号不匹配。如果只想表示一个. 符号,需要使用转义,转义符是 \ ,也就是 \.。在java中,\\ 表示 \。

2024-05-25 15:48:12 1007

原创 java常用API(二)

细节:① BigDecimal 类和BigInteger 类一样,一旦创建对象就不可再改变。② 不论进行何种运算,对象都不会在改变了,而是创建一个新的对象。③ BigDecimal 类可以表示任意精度的有符号十进制数。

2024-05-22 19:20:50 1139 1

原创 java常用API

System也是一个工具类,提供了一些与系统相关的方法Runtime表示当前虚拟机的运行环境Object类是java中的顶级父类,所有的类都直接或间接的继承于Object类。Objects是一个对象工具类,提供了一些操作对象的方法。

2024-05-19 21:48:08 971 1

原创 java基础:内部类

在一个类里面定义的类就叫做内部类包含了继承或实现,方法重写,创建对象三部分。整体就是一个类的子类对象或接口的实现类对象匿名内部类事实上只是 { } 代表的内容匿名内部类编译时也会产生字节码文件:可以看出,匿名内部类并非真的没有名字,只不过不需要自己命名而已,名字为 外部类$序号验证:通过反编译查看匿名内部类的详细信息因为整体事实上是一个匿名内部类对象,所以可以直接调用该对象的方法,或直接将该对象赋值给变量。

2024-04-12 16:14:56 851

原创 抽象类和接口

接口就是一种规则,是对行为的抽象①接口用interface关键字定义② 接口和类是实现关系,通过implemens关键字表示③接口不能实例化④接口的子类(实现类),要么重写接口中所有的抽象方法,要么是抽象类⑤接口和类实现关系,可以是单实现,也可以是多实现⑥实现类可以在继承一个类的同时实现多个接口。

2024-04-07 20:10:52 1879

原创 包和final

final 最终的 --> 不可改变的。

2024-04-06 16:45:25 523 1

原创 java面向对象之多态

同类型的对象,表现出的不同形态。(对象的多种形态)

2024-04-05 21:07:10 755 1

原创 java面向对象之继承

面向对象三大特征之一,可以把多个子类中重复的代码抽取到父类中,子类可以使用,减少代码冗余,提高代码的复用性。

2024-04-05 15:48:03 874 1

原创 笔记:static关键字

有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享。

2024-03-21 16:55:25 1818 1

原创 笔记:ArrayList集合

可以自动扩容(可长可短,自由伸缩)的容器。

2024-03-18 21:50:43 520

原创 java字符串

System.out.println("请输入一个字符串");//false原因:通过源码发现,next的底层逻辑是通过new string()出来的结论:只要涉及字符串比较,就必须用string类中的方法。JDK8后出现的一个可变的操作字符串的容器,可以更高效、方便的拼接字符串。其性质和StringBuilder类似,注意点基本都和StringBuilder一样。在拼接的时候,可以指定间隔符号,开始符号,结束符号。

2024-03-13 20:57:14 2251

原创 面向对象基础

此时,s1是setName方法的调用者,对于setName方法中的this,代表的就是调用者s1的地址值。系统的其他对象只能通过包裹在数据外面的已经授权的操作(简答的外部接口)来与这个封装的对象进行交流和交互。注意:如果我们自己没有写任何的构造方法,那么虚拟机会自动创建一个默认的无参构造方法。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外提供的接口来访问该对象。注意:如果已经定义了构造方法,那么虚拟机将不再提供默认的无参构造方法。所以,构造方法≠创建对象,构造方法只是创建对象7步中的一步。

2024-03-10 19:58:13 489 1

原创 java中关于switch语句,random类和数组的一些小知识

语句体中没有写break导致的,程序会执行下一个case,直到遇到break或者}结束使用场景:如果多个case的语句体重复了,可以考虑使用case穿透去简化代码。或者注:default可以省略,语法不会有问题,但不建议省略2.switch新特性(jdk12后支持采用switch新特性后-->用->{}代替,可以省略break特别的,如果case后语句体只有一行,{}也可以省略,从而进一步简化代码。

2024-03-06 15:41:43 501

原创 java逻辑运算符和原码、反码、补码的理解

java的逻辑运算符分为四种:1.逻辑且&2.逻辑或|3.逻辑异或^4.逻辑非!但是这种逻辑运算符效率非常低,他会同时执行两边,所以x和y都会++变成11。

2024-03-01 21:23:40 874

原创 笔记:java基本数据类型中的一些注意点

这里先介绍基本数据类型,共分为4类8种。

2024-03-01 20:23:09 346

原创 javac与javac工具和环境变量的配置

1.先写一个简单的java文件,注意类名要和文件名保持一致2.通过cmd进入当前文件存放目录位置3.javac是JDK提供的编译工具,通过这个工具可以将.java文件编译成.class字节码文件4.java也是JDK提供的一个工具,用来运行.class文件,注意在运行时不用加后缀名.class。

2024-02-28 17:45:35 547 1

原创 笔记:常用cmd命令

原因:系统会首先在当前目录里面寻找,找不到再去环境变量里面依次寻找该文件,所以一定能找到。2.dir查看当前路径内容(dir也会展示当前路径中的隐藏文件)重新打开cmd,接下来在任意位置,输入qq.exe,均可打开qq。通过多级目录的方式太过麻烦,可以直接把目录存进环境变量。5.cd 目录1\目录2\...进入多级目录。4.cd..回退到上一级目录。6.cd\回退到盘符根目录。如何通过cmd打开QQ?8.exit退出cmd。

2024-02-28 16:01:01 352 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除