![](https://img-blog.csdnimg.cn/20210123211150780.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
大白Java成长日记(Java基础)
文章平均质量分 60
Java0基础篇
夢想家吖
唯有自强不息,才有日后无限可能
展开
-
枚举类(enum)
文章目录1、枚举的定义2、为什么使用枚举类型3、枚举类型的使用1、枚举的定义枚举是一种引用数据类型。语法结构:enum 枚举类型名{ 枚举值1,枚举值2...}结果只有两种情况的,建议使用布尔类型。结果超过两种并且还是可以一枚一枚列举出来的,建议使用枚举类型。2、为什么使用枚举类型在开发的过程中,有可能会遇到一个方法的执行结果包括三种情况,四种情况,五种情况不等,但是每一个都是可以数清楚的,一枚一枚都是可以列举出来的。这个布尔类型就无法满足了。此时需要使用java语言中的枚举类型原创 2021-02-23 20:51:50 · 568 阅读 · 0 评论 -
IO流+Properties集合的联合使用
IO流+Properties集合的联合使用IO流:文件的读和写Properties:是一个Map集合,key和value都是String类型设计理念:以后经常改变的数据,可以单独写到一个文件中,使用程序动态读取。将来只需要修改这个文件的内容,java代码不需要改动,不需要重新编译,服务器也不需要重启。就可以拿到动态的信息。类似于以上机制的这种文件被称为配置文件并且当配置文件中的内容格式是:key1 = valuekey2 = value 的时候,我们把这种配置文件叫做属性配置文件。i原创 2021-03-12 15:27:54 · 227 阅读 · 0 评论 -
String类的常用方法(replace、split、substring、toCharArray、toLowerCase、toUpperCase)
文章目录String类的常用方法1、replace2、split3、substring4、toCharArray5、toLowerCase6、toUpperCaseString类的常用方法1、replace替换字符串语法格式:String replace(CharSequence target, CharSequence replacement)String newString = "http://www.baidu.com".replace("http://","https://")Syste原创 2021-02-18 19:07:32 · 767 阅读 · 2 评论 -
异常与方法覆盖
异常与方法覆盖在方法覆盖时,重写之后的方法不能比重写之前的方法抛出更多(更宽泛)的异常,可以更少(更小)的异常class Animal{ public void doSome(){ } public void doOther() throws Exception{ }}class Cat extends Animal{ //编译错误 /*public void doSome throws Exception() { }*/ //编译正常原创 2021-02-28 22:12:53 · 173 阅读 · 2 评论 -
contions和remove方法深入分析
文章目录contains方法解析remove方法解析contains方法解析语法格式:boolean contains(Object o)判断集合中是否包含某个对象o,如果包含返回true,如果不包含返回false。contain方法是用来判断集合中是否包含某个元素的方法。那么他的底层是怎么判断集合中是否包含某个元素的呢?调用了equals方法进行比对equals方法返回true,就表示所以存放在一个集合中的类型,一定要重写equals方法String对象:package com原创 2021-03-02 22:48:53 · 410 阅读 · 6 评论 -
Java泛型、类型自动推断
文章目录原创 2021-03-05 15:48:31 · 1079 阅读 · 1 评论 -
线程安全
文章目录1、在多线程并发的环境下,数据安全是重要的2、什么时候数据在多线程并发的环境下会存在安全问题呢?3、怎么解决线程安全问题4、线程同步与线程异步1、在多线程并发的环境下,数据安全是重要的以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了。这些代码我们都不需要编写。最重要的是:你要知道,你编写的程序需要放到一个多线程的环境下运行,你更需要关注的是这些数据在多线程并发的环境下是否是安全的。2、什么时候数据在多线程并发的环境下会存在安原创 2021-03-16 09:56:19 · 80 阅读 · 0 评论 -
Java进阶Day3(finalize方法)
关于Object类中的finalize()方法1、关于Object类中的源代码:projected void finalize() throws Throwable { }2、finalize()方法只有一个方法体,里面没有代码,而且这个方法是projected修饰的。3、这个方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法。4、finalize()方法的执行时机当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用finalize()方法。5、finalize()方法实原创 2021-02-08 21:31:00 · 130 阅读 · 1 评论 -
java冒泡排序
冒泡排序算法思想:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。举例:(1)要排序数组:[10,1,35,61,89,36,55](2)第一趟排序:第一次排序:10和1比较,10大于1,交换位置 [1,10,35,61,89,36,55]第二趟原创 2021-02-13 20:35:24 · 195 阅读 · 2 评论 -
异常的继承结构
java中异常的继承结构1、Object下有Throwable(可抛出的)不管是错误还是异常都是可以抛出的。2、Throwable下有两个分支:Error(不可处理的,直接退出JVM)和Exception(可处理的)所有的错误只要发生,Java程序只有一个结果,那就是终止程序的执行。退出JVM,错误是不能处理的。3、Exception下有两个分支:Exception的直接子类(Exceptionsubclass):编译时异常(要求程序员在编写程序阶段必须预先对这些异常进行处理,如果不处原创 2021-02-25 15:34:31 · 907 阅读 · 1 评论 -
Java File类
文章目录File类File类的常用方法File类File类和IO流四大家族没有关系,所以File类不能完成文件的读和写。位于java.io.File 下File对象代表什么?文件和路径名的抽象表达式。一个File对象有可能对应的是目录,也可能是文件C:\Drivers 是一个File对象C:\Drivers\Lan\Readme\Readme.txt 也是一个File对象File只是一个路径名的抽象表达式。File类的常用方法创建一个File对象File f = new Fi原创 2021-03-11 19:47:43 · 106 阅读 · 0 评论 -
String类的构造方法
常用的String构造方法创建字符串对象最常用的一种方式String s1 = "hello world";System.out.println(s1); //hello worldbyte[] bytes = {97,98,99}; //97是a,98是b,99是cString s2 = new String(bytes);System.out.println(s2); //abcs1变量中保存的仅仅是一个内存地址,但是String类已经重写了toString()方法。因为输出一个原创 2021-02-17 12:25:38 · 1335 阅读 · 2 评论 -
Java之缓冲流、转换流、节点流、包装流
文章目录一、BufferedRead(带有缓冲的字符输入流)1、节点流和包装流2、readline :读一行字符二、转换流(InputStreamReader与OutputStreamWriter)三、BufferedWrite:(带有缓冲的字符输出流)一、BufferedRead(带有缓冲的字符输入流)带有缓冲区的字符输入流使用这些流的时候不需要自定义char数组,或者说不需要自定义byte数组,自带缓冲。1、节点流和包装流当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做原创 2021-03-10 22:20:39 · 499 阅读 · 0 评论 -
Collection接口中常用方法、迭代器
文章目录原创 2021-03-02 20:00:49 · 327 阅读 · 0 评论 -
Java守护线程和定时器
文章目录一、守护线程1、守护线程概述2、实现守护线程二、定时器1、定时器概述2、实现定时器一、守护线程1、守护线程概述Java语言中线程分为两大类:一类是:用户线程一类是:守护线程(后台线程)其中具有代表性的就是:垃圾回收线程(守护线程)、主线程main(用户线程)守护线程的特点:一般守护线程是一个死循环,所有的用户只要结束,守护线程自动结束。守护线程用在什么地方呢?每天00:00的时候系统数据自动备份。这个需要使用到定时器,并且我们可以将定时器设置为守护线程。一直在那里看着,每到0原创 2021-03-17 11:26:53 · 602 阅读 · 0 评论 -
Java之反射机制详解
反射机制反射机制在java.lang.reflect.*包下反射机制相关的重要的类有java.lang.Class:代表字节码文件java.lang.reflect.Method:代表字节码中的方法字节码java.lang.reflect.Constructor:代表字节码中的构造方法字节码java.lang.reflect.Field:代表字节码中的属性字节码反射机制有什么用通过java语言中的反射机制可以操作字节码文件。有点类似于黑客(可以读和修改字节码文件。)通过反射机制可以操作代原创 2021-03-19 16:49:38 · 949 阅读 · 2 评论 -
String类:main方法中的String数组
目录main方法中的String数组1、main方法上面的“String[] args ”有什么用?2、那么数组什么时候里面会有值呢?3、main方法String参数的案例main方法中的String数组1、main方法上面的“String[] args ”有什么用?JVM负责调用main方法的时候,会自动传一个String数组过来public class mainTest { //这个方法程序员负责写出来,JVM负责调用。JVM调用的时候一定会传一个String数组过来 public s原创 2021-02-10 17:19:41 · 1166 阅读 · 3 评论 -
java数组:一维数组
文章目录数组:Array1、数组相关基础知识2、数组的优缺点一维数组1、怎样声明一个一维数组2、怎样初始化一个一维数组呢?3、对一维数组中的元素访问4、 一维数组的遍历5、静态存储Object类6、动态初始化一维数组7、什么时候采用静态初始化方法/动态初始化方法?数组:Array1、数组相关基础知识1、Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object。2、数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合)。数组:字面意思是“一组数据”。3、原创 2021-02-10 20:45:01 · 853 阅读 · 2 评论 -
Java之wait和notify、生产者和消费者模式
文章目录关于Object类中的wait和notify方法生产者和消费者模式关于Object类中的wait和notify方法即生产者和消费者模式。第一:wait和notify方法不是线程对象的方法,是java中任何一个java对象都有的方法,因为这两个方式是Object类中自带的。wait方法和notify方法不是通过线程对象调用的,t.wait、t.notify都是不对的第二:wait方法的作用?Object o = new Object;o.wait();表示:让正在o对象上活动的线程原创 2021-03-17 18:59:35 · 654 阅读 · 3 评论 -
String类的常用方法(charAt、compareTo、contains、endWith、starsWith)
文章目录String类的常用方法1、charAt2、compareTo3、contains4、endWithString类的常用方法1、charAt返回参数下标对应的字符语法格式:char charAt(int index)例如:char c = "中国人".charAt(1);//“中国人”是个字符串String对象,只要是个对象就可以用System.out.println(c);//输出结果:国2、compareTo比较字符串大小关系,字符串之间大小关系不能用><比较前原创 2021-02-17 15:58:32 · 2984 阅读 · 0 评论 -
Java中如何自定义异常及手动抛出异常
SUN提供的JDK内置的异常是肯定不够用的。在实际开发中,又很多业务,这些业务出现异常之后,JDK中都是没有的,和业务挂钩的。那么异常类我们程序员可以定义吗?异常是可以自定义的1、自定义异常的方法需要两步:第一步:编写一个类继承Exception或者RunTimeException第二步:提供两个构造方法,一个无参数的,一个带有String参数的。MyException类 public class MyException extends Exception{//编译时异常 .原创 2021-02-28 21:54:06 · 4302 阅读 · 0 评论 -
Java进阶Day4(内部类)
内部类什么是内部类?内部类:在类的内部又定义了一个新的类,被称为内部类。内部类的分类静态内部类:类似于静态变量实例内部类:类似于实例变量局部内部类:类似于局部变量匿名内部类局部内部类一般用不上...原创 2021-02-09 14:18:22 · 139 阅读 · 0 评论 -
java之数组:二维数组
文章目录二维数组二维数组静态初始化二维数组的length属性二维数组的元素访问二维数组二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素都是一个一维数组二维数组静态初始化int[][] array = {{1,1,1},{2,2,2},{3,3,3}};二维数组的length属性public class ArrayTest4 { public static void main(String[] args) { int[][] a ={原创 2021-02-11 13:04:11 · 277 阅读 · 1 评论 -
编译时异常和运行时异常区别
文章目录1、编译时异常因为什么而得名2、编译时异常和运行时异常区别3、编译时异常还有其他名字4、运行时异常还有其他名字5、所有异常都发生在运行阶段的1、编译时异常因为什么而得名编译时异常和运行时异常,都发生在运行阶段。编译阶段异常是不会发生的。编译时异常因为什么而得名?因为编译时异常必须在编译(编写)阶段预先处理,如果不处理编译器报错,因此得名。所有异常都是运行阶段发生的。因为只有程序运行阶段才可以new对象。因为异常的发生都是new异常对象。2、编译时异常和运行时异常区别编译时异常一般原创 2021-02-25 17:43:17 · 6525 阅读 · 2 评论 -
getMessage和printStackTrace()
文章目录获取异常对象的两个重要方法1、获取异常简单的描述信息2、打印异常追踪的堆栈信息3、两个方法的实例获取异常对象的两个重要方法1、获取异常简单的描述信息语法格式:String msg = exception.getMessage();2、打印异常追踪的堆栈信息语法格式:exception.printStackTrace();3、两个方法的实例public class ExceptionText3 { public static void main(String[] args) {原创 2021-02-28 14:34:32 · 1640 阅读 · 8 评论 -
FileInputStream与FileOutputStream
文章目录FileInputStream``int read()`` :从此输入流中读取一个数据字节``int read(byte[] b)``一次最多读取b.length个字节FileInputStreamjava.io.FileInputStream:1、文件字节流,万能的,任何类型的文件都可以采用这个流来读。2、字节的方式,完成输入的操作,完成读的操作(硬盘–>内存)int read() :从此输入流中读取一个数据字节示例代码1:import java.io.FileInputStr原创 2021-03-10 14:53:48 · 740 阅读 · 1 评论 -
java - synchronized、死锁详解
文章目录一、synchronized的三种应用方式二、同步代码块(灵活)三、synchronized作用于实例方法四、synchronized作用于静态方法五、Java三大变量的线程安全六、死锁概述一、synchronized的三种应用方式synchronized关键字最主要有以下3种应用方式修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对原创 2021-03-16 17:27:23 · 935 阅读 · 1 评论 -
集合的概述
文章目录1、什么是集合?有什么用?2、集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)3、集合内存图示4、在Java中每一个不同的集合,底层都会对应不同的数据结构5、集合在JDK的哪个包下?6、在Java中集合分为两大类1、什么是集合?有什么用?数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,原创 2021-03-01 21:17:08 · 519 阅读 · 1 评论 -
FileReader和FileWriter
文章目录1、FileReader2、FileWriter1、FileReader文件字符输入流,只能读取普通的文本,读取普通文本内容时,比较方便,快捷。import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class FileReadertest1 { public static void main(String[] args) {原创 2021-03-10 18:10:47 · 176 阅读 · 0 评论 -
Java实现线程的几种方式
文章目录1、继承java.lang.Thread,重写run方法2、实现java.lang.Runnable接口,实现run方法3、采用匿名内部类的方式1、继承java.lang.Thread,重写run方法实现线程的第一种方式:编写一个类直接继承java.lang.Thread,重写run方法。怎么创建线程对象?new就行了怎么启动线程呢?调用线程对象的start()方法就行public class ThreadTest01 { public static void main(Stri原创 2021-03-14 19:23:46 · 3395 阅读 · 3 评论 -
final、finalize和finally的区别
文章目录finalfinalizefinallyfinalfinal是一个关键字。表示最终的,不可变的。 final修饰的变量无法重新赋值。 final int i = 100; //i = 200; 不能变 final修饰的类无法继承final class A { //常量 public static final double MATH_PI = 3.1415926;} final修饰的方法无法覆盖 class B { public fin原创 2021-02-28 19:14:12 · 646 阅读 · 10 评论 -
Java线程中的sleep方法详解
关于线程的sleep方法static void sleep(long mills)1、静态方法:Thread.sleep(1000);2、参数是毫秒3、作用:让当前线程进入休眠,进入“阻塞”状态,放弃占有CPU时间片,让给其他线程使用。public class ThreadTest06 { public static void main(String[] args) { //让当前线程进入休眠,睡眠5秒 //当前线程是主线程!!! try原创 2021-03-15 14:48:54 · 24492 阅读 · 1 评论 -
Map接口、HashMap集合、TreeMap集合、Properties类
文章目录Map接口Map接口中的常用方法Map接口1、Map和Collection没有继承关系。2、Map集合以key和value的方式存储数据:键值对key和value都是引用数据类型。key和value都是存储对象的内存地址。key起主导的地位,value是key的一个附属品。Map接口中的常用方法void clear()boolean containKey(Object key)boolean containValue(Object value)V get(Object ke原创 2021-03-08 14:36:42 · 138 阅读 · 1 评论 -
StringBuffer
文章目录StringBuffer进行字符串拼接如何优化StringBuffer的性能StringBuffer和StringBuilder的区别StringBuffer进行字符串拼接构造一个其中不带字符的字符串缓冲区,初始容量为16个字符可以进行大量字符串拼接操作public class StringBufferText { public static void main(String[] args) { //创建一个初始化容量为16byte[] 数组(字符串缓冲区对象)原创 2021-02-20 22:18:24 · 288 阅读 · 0 评论 -
Java进阶Day-2(equals 和 ==)
关于Object类中的equals方法1、equals方法的源代码public boolean equals(Object obj){ return (this==obj);}2、equals的作用在编程过程中,通过equals方法来判断两个对象是否相等。3、equals判断是否够用?在Object类中的equals方法当中,默认采用的是“= =”判断两个java对象是否相等,而“= =”判断的是两个java对象的内存地址,我们应该判断的是两个java对象的内容是否相等。所以需要子类重写e原创 2021-02-07 18:58:11 · 163 阅读 · 3 评论 -
Arrays工具类的使用(待更新)
常用的Arrays工具类所有的方法都是静态的,直接用类名调用主要使用的是两个方法:二分法查找Arrays.binarySearch(Array arr, int key)排序 Arrays.sort(Array arr)要看文档使用,不要死记硬背需要导入java.util.Arrays包使用。...原创 2021-02-14 16:33:57 · 156 阅读 · 0 评论 -
异常的两种处理方式、throws
文章目录1、异常的两种处理方式1、异常上抛2、异常捕捉举例注意2、运行时异常编写程序时可以不处理3、方法声明上使用throws1、异常的两种处理方式1、异常上抛在方法声明的位置上,使用throws关键字,抛给上一级谁调用我,我就抛给谁,抛给上一级。2、异常捕捉使用try..catch语句进行异常的捕捉这件事发生了,谁也不知,因为我给抓住了。举例我是某集团的一个销售员,因为我的失误,导致公司损失了1000块钱。"损失1000块"这可以看做一个异常发生了。我有两种处理方式。第一种方原创 2021-02-25 20:51:43 · 1367 阅读 · 0 评论 -
java二维数组模拟酒店管理系统
为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能要求:1、该系统的用户是:酒店前台。2、酒店中所有房间使用一个二维数组来模拟:Room[][] rooms;3、酒店中的每一个房间应该是一个java对象:Room。4、每一个房间Room应该有:房间编号、房间类型属性、房间是否空闲5、系统应该对外提供哪些功能:可以预定房间:用户输入房间编号,订房。可以退房:用户输入房间编号,退房。可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态。...原创 2021-02-12 19:32:05 · 733 阅读 · 3 评论 -
java选择排序
选择排序思想:简单选择排序采用最简单的选择方式,从头至尾顺序扫描序列找出最小的一个关键字,和第一个关键字交换,接着从剩下的关键字中继续这种选择和交换,最终使序列有序。图解:示例代码:public class SelectSort { public static void main(String[] args) { int[] a = {2, 4, 6, 3, 1, 5}; for (int i = 0; i < a.length - 1; i++)原创 2021-02-13 23:12:32 · 141 阅读 · 2 评论 -
多线程概述
一、多线程1、什么是进程?什么是线程?进程是一个应用程序(1个进程是一个软件)。线程是一个进程中的执行场景/执行单元。一个进程可以启动多个线程。对于java程序来说,当在DOS命令窗口中输入:java HelloWorld 回车之后。会先启动JVM,而JVM就是一个进程。JVM再启动一个主线程调用main方法.同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程.2、进程和线程是什么关系?举例原创 2021-03-14 15:05:30 · 170 阅读 · 1 评论