【Java】
Java
王同学要努力
24届毕业生 计科专业
无论身处何方,陷于何地,都要向下扎根,向上开花,不负生活,不负自己!
展开
-
【中级软件设计师】—(下午题)试题五Java基础知识补充(四十四)
一个方法最多有一个返回值,如果要返回多个值,可以采用数组的形式。原创 2023-05-19 19:37:37 · 612 阅读 · 0 评论 -
【零基础学Java】—Java中的 >>,>>>
【Java基础】Java中的 >>,>>>前言(做题时遇到了,记录一下🉑2022 4 27)我们都知道对于有符号数据类型,二进制最左端的数字为符号位,0代表正,1代表负,这里先介绍几个概念逻辑左移=算术左移:高位溢出,低位补0逻辑右移:低位溢出,高位补0算术右移:低位溢出,高位用符号位的值补比如一个有符号位的8位二进制数10101010,[]是添加的数字逻辑左移一位:0101010[0]逻辑左移两位:101010[00]算术左移一位:0101010[0]算术转载 2022-04-27 16:24:53 · 1393 阅读 · 2 评论 -
while (n-- > 0) 的用法
while (n-- > 0) 的用法今天下午做题时遇到了,写篇文章记录一下while(n- - > 0) 使用后缀递减运算符,它的意思是循环n次,除了最常用的 for (int i = 0; i < n; ++i) {...} 之外,还可以写 while (n- - > 0) {...} 和 while (- -n >= 0) {...}。eg:public class demo { public static void main(String[] args)原创 2022-04-21 19:22:53 · 2709 阅读 · 2 评论 -
【零基础学Java】—Socket类(五十五)
【零基础学Java】—Socket类(五十五)Socket类:该类实现客户端套接字,套接字是指两台设备之间通讯的端点。在Java中,提供了两个类用于实现TCP通信程序客户端:java.net.Socket类表示创建Socket对象,向服务端发出请求,服务端响应请求,两者建立连接开始通信服务端:java.net.ServerSocket类表示,创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接构造方法:Socket(String host,int port)创建一原创 2022-04-17 19:11:48 · 1222 阅读 · 4 评论 -
【零基础学Java】—TCP通信(五十四)
【零基础学Java】—TCP通信(五十四)TCP通信:面向连接的通信,客户端和服务器端必须经过三次握手,建立逻辑连接,才能通信(安全)。通信的步骤:服务器端先启动服务器端不会主动的请求客户端,必须使用客户端请求服务器端客户端和服务器端会建立一个逻辑连接,而这个连接中包含一个对象,这个对象就是IO对象客户端和服务器端就可以使用IO对象进行通信(通信的数据不仅仅是字符所以IO对象是字节流对象)客户端和服务器端进行一个数据交互,需要4个IO流对象在Java中,提供了两个类用于实现TCP通信程原创 2022-04-17 16:30:24 · 680 阅读 · 4 评论 -
【零基础学Java】—网络编程(五十三)
【零基础学Java】—网络编程(五十三)一、软件结构C/S结构:全称为Client/Server结构,是指客户端和服务器结构,常见的程序有QQ、迅雷等软件B/S:全称为Browser/Server结构,是指浏览器和服务器结构。常见的浏览器有谷歌、火狐等等。两种架构各有优势,但是无论哪种结构,都离不开网络的支持,网络编程,就是在一定的协议下,实现两台计算机的通讯的程序二、网络通信协议网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时要遵循一定的规则原创 2022-04-17 15:56:29 · 1114 阅读 · 3 评论 -
【零基础学Java】—IO概述(五十二)
【零基础学Java】—IO概述(五十二)一、什么是IO?生活中,你肯定经历过过这样的场景,当你编辑一个文本文件,忘记Ctrl+S,可能文件就白白编辑了,当你电脑上插入一个U盘,可以把视频,拷贝到你的电脑硬盘里,那么数据都是在哪些设备上呢?内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一直能够数据的流动,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存是输出流。Java中I/O操作主要是指使用java。io包下的内容,进行输入、输出操作。输入也叫做读取数据,原创 2022-04-16 15:55:30 · 551 阅读 · 4 评论 -
【零基础学Java】—递归(五十一)
【零基础学Java】—递归(五十一)一、递归递归:指在当前方法内调用自己的这种现象🔵递归的分类:直接递归:方法自身调用自己间接递归:间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法🔵🔵注意事项:递归一定要有条件限制,保证递归能够停止下来,否则会发生栈内存溢出在递归中能够虽然有限定条件,但是递归的次数不能太多,否则也会发生栈内存溢出构造方法 禁止递归🔵🔵🔵递归的使用前提:当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归二、练习/* 定义原创 2022-04-16 15:38:36 · 465 阅读 · 1 评论 -
【零基础学Java】—File类(五十)
【零基础学Java】—File类(五十)一、File类概述java.io.File类,文件和目录路径名的抽象表示形式Java把电脑中的文件和文件夹封装成了一个File类我们可以使用File类对文件和文件夹进行操作我们可以使用File类的方法:创建一个文件/文件夹;删除文件/文件夹;获取文件/文件夹;判断文件夹是否存在,对文件夹进行遍历以及判断文件夹的大小File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法static String pathSeparator与系统有关的分隔符原创 2022-04-16 14:58:10 · 324 阅读 · 0 评论 -
【零基础学Java】—多线程(四十九)
【零基础学Java】—多线程(四十九)一、并发与并行并发:指两个或多个事件在同一时间段内发生并行:指两个或多个事件在同一时刻发生(同时发生)二、进程和线程🧨进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是视同运行程序的基本单位;系统运行一个程序即使一个进程从创建、运行到消亡的过程。🧨线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中是可以有多个线程的,这个应用程序原创 2022-04-15 20:27:47 · 684 阅读 · 4 评论 -
【零基础学Java】—自定义异常(四十八)
【零基础学Java】—自定义异常(四十八)自定义异常类:java提供的异常类,不够我们使用,需要自己定义一个异常类格式:public class XXXException extends Exception/RuntimeException{ 添加一个空参数的构造方法 添加一个带异常信息的构造方法 }注意:自定义异常类一般都是以Exception结尾,说明该类是一个异常类自定义异常类,必须继承Exception或者RuntimeException继承Except原创 2022-04-15 16:10:14 · 902 阅读 · 2 评论 -
【零基础学Java】—finally代码块(四十七)
【零基础学Java】—finally代码块(四十七)🧨🧨🧨🧨🧨🧨finally代码块finally:有一些特定的代码块无论是否异常是否发生,都要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的。什么时候的代码必须最终执行?当我们在try语句块中打开了一些物理资源(磁盘文件/网络连接/数据库连接等等)我们都得在使用完之后,最终关闭打开的资源。finally语法:注意:finally不能单独使用,原创 2022-04-15 15:11:21 · 409 阅读 · 2 评论 -
【零基础学Java】—throw关键字(四十六)
【零基础学Java】—throw关键字(四十六)一、throw关键字public class demo { public static void main(String[] args) { //创建int类型的数组 并且赋值 int[] arr=new int[3]; int e= getElement(arr,3); System.out.println(e);//ArrayIndexOutOfBoundsExceptio原创 2022-04-14 20:44:08 · 901 阅读 · 3 评论 -
【零基础学Java】—异常体系(四十五)
一、异常的概念异常:异常指的是程序在执行的过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并且抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。二、异常体系🧨🧨🧨🧨Throwable体系三、异常分类java.lang.Throwable类是Java语言中所有错误或异常的超类RuntimeException:运行异常,原创 2022-04-14 17:02:09 · 407 阅读 · 0 评论 -
【零基础学Java】—Debug追踪(四十四)
【零基础学Java】—Debug追踪(四十四)Debug调式程序(idea):可以让代码逐行执行,查看代码的过程,调式程序中出现的bug使用方式:在行号的右边,鼠标左键单击,添加断点(每个方法的第一行,哪里有bug添加到哪里),右键,选择Debug执行程序,程序就会停留在添加的第一个断点处执行程序:f8:逐行执行程序f7:进入到方法中shift+f8:跳出方法f9 : 跳到下一个断点,如果没有下一个断点,就结束程序ctrl+f2:退出debug模式,停止程序Console:切换到控制台原创 2022-04-14 16:10:18 · 475 阅读 · 2 评论 -
【零基础学Java】—Map集合概述(四十三)
一、Map集合概述现实生活中,我们常会看到这样一种集合,IP地址与主机 名,身份证号与个人,系统用户名与系统对象等等,这种一一对应的关系,就叫做映射。java提供了专门的集合用来存放这种对象的关系,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,他们存储数据的形式不同,如下图所示:🧨🧨🧨🧨🧨🧨总结Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的存储方式。Map中的集合,元素是成原创 2022-04-14 15:53:41 · 387 阅读 · 2 评论 -
【零基础学Java】—Collections集合工具类(四十二)
🧨🧨🧨🧨Collections集合工具类public class demoCollection { public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); Collections.addAll(list,"a","b","c","d"); System.out.println(list);//[a, b, c, d]原创 2022-04-13 19:18:05 · 316 阅读 · 0 评论 -
【零基础学Java】—哈希值(四十一)
【零基础学Java】—哈希值(四十一)一、 HashSet集合的介绍java.util.Set接口 extends Collection接口Set接口的特点:不允许重复的元素没有索引,没有带索引的方法,也不能使用普通的for循环遍历java.util.HashSet集合 implements Set接口HashSet特点:不允许重复的元素没有索引,没有带索引的方法,也不能使用普通的for循环遍历是一个无序的集合,存储元素和取出元素的顺序有可能不一致底层是一个哈希表结构(查询的速度原创 2022-04-13 17:20:43 · 358 阅读 · 4 评论 -
【零基础学Java】—LinkedList集合(四十)
【零基础学Java】—LinkedList集合(四十)java.util.linkedList集合implements list接口linkedList 集合的特点:底层是一个链表结构,查询慢,增删快里面包含了大量的操作首尾元素的方法注意:使用linkedList集合特有的方法在这里插入代码片不能使用多态import java.util.LinkedList;/** * @author :CaiCai * @date : 2022/4/13 11:54 *//*java.u原创 2022-04-13 14:29:44 · 655 阅读 · 0 评论 -
【零基础学Java】—List集合(三十九)
【零基础学Java】—List集合(三十九)java.util.list接口 extends Collection接口list接口的特点:1、有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出321)2、有索引,包含了一些带索引的方法3、允许重复的元素list接口中带索引的方法有:public void add(int index,E element):指定的元素,添加到该集合的指定位置上public E get(int index):返回集合指定位置的元素public E原创 2022-04-13 11:50:22 · 413 阅读 · 2 评论 -
【零基础学Java】—Collection集合(三十八)
二、Collection常用功能Collection是所有单列集合的父接口,因此在Collection接口中定义了单列集合(List和Set)通用的一些方法,这些方法可以操作于所有的单列集合。方法如下:public class demoCollection { public static void main(String[] args) {/* public boolean add(E e): 把给定的对象添加到当前集合中 返回值是一个boolea.原创 2022-04-12 15:28:48 · 438 阅读 · 3 评论 -
【零基础学Java】—包装类(三十七)
【零基础学Java】—包装类(三十七)一、包装类包装类:基本数据类型,使用起来十分方便,但是没有对应的方法来操作这些基本类型的数据可以使用一个类,把基本的数据装起来,在类中定义一些方法,这个类叫做包装类,我们可以使用类中的方法来操作这些基本类型的数据二、装箱和拆箱public class Demo4Integer { public static void main(String[] args) { //构造方法 Integer in1=new Inte原创 2022-04-12 14:33:10 · 437 阅读 · 3 评论 -
【零基础学Java】—StringBuilder类(三十六)
【零基础学Java】—StringBuilder的原理(三十六)一、String类字符串是常量,他们的值在创建之后不能更改字符串的底层是一个被final修饰的数组,不能改变,是一个常量 private final byte[ ] value;进行字符串的相加,内存中会有多个字符串,占用空间多,效率低下二、StringBuilder类字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的子字符串)底层也是一个数组,但是没有被final修饰,可以改变长度byte[ ] valu原创 2022-04-12 11:48:24 · 316 阅读 · 4 评论 -
【零基础学Java】—System类(三十五)
【零基础学Java】—System类(三十五)java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作在System类的API文档中,常用的方法有:public static long currentTimeMillis():返回以毫秒为单位的当前时间public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组原创 2022-04-12 10:11:15 · 284 阅读 · 3 评论 -
【零基础学Java】—Calendar类(三十四)
【零基础学Java】—Calendar类(三十四)java.util.Calendar日历类Calendar类是一个抽象类,里面提供了很多操作日历字段的方法Calendar类无法直接创建对象,里面提供了一个静态方法,叫做getInstance(),该方法返回了Calendar类的子对象static Calendar getInstance()使用默认时区和语言获得一个日历🧨Calendar类常用的方法:public int get(int field): 返回给定日历字段的值public原创 2022-04-12 09:36:54 · 426 阅读 · 2 评论 -
【零基础学Java】—Java 日期时间(三十二)
DateFormat 是日期/时间格式化子类的抽象类,它以语言无关的方式格式化和分析日期或时间。 日期/时间格式化子类(如SimpleDateFormat )允许格式化(即日期文本),解析(文本日期)和归一化。 该日期表示为一个Date对象,或自1970年1月1日00:00:00 GMT以来的毫秒。...原创 2022-04-11 19:52:23 · 330 阅读 · 0 评论 -
【零基础学Java】—Java 日期时间(三十一)
【零基础学Java】—Java 日期时间(三十一)java.util.Date:表示日期和时间的类类Date表示特定的瞬间,精确到毫秒毫秒:千分之一秒,1000毫秒=1秒特定的时间:一个时间点,一刹那时间毫秒值的作用:可以对时间和日期进行计算把毫秒转换为日期:1天=246060=86400秒=86400*1000=86400000毫秒一、java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间原创 2022-04-11 17:45:04 · 510 阅读 · 2 评论 -
【零基础学Java】—内部类的概念与分类(三十)
【零基础学Java】—四种权限修饰符(三十)访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)public : 对所有类可见。使用对象:类、接口、变量、方法protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。原创 2022-04-11 16:10:54 · 384 阅读 · 2 评论 -
【零基础学Java】—final关键字与四种用法(二十九)
【零基础学Java】—final关键字与四种用法(二十九)一、final关键字final关键字代表最终、不可改变的常见的四种用法:可以用来修饰一个类可以用来修饰一个方法可以用来修饰一个局部变量可以用来修饰一个成员变量(一)、final关键字用来修饰一个类格式: public final class 类名称 { // ………… }含义:当前这个类不能有任何的子类注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没儿子)/*注意:一个类如果是原创 2022-04-11 11:51:28 · 1228 阅读 · 8 评论 -
【零基础学Java】—笔记本USB接口案例(二十八)
【零基础学Java】—笔记本USB接口案例(二十八)一、笔记本电脑笔记本电脑(laptop)通常具备使用USB设备的功能,在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体什么是USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。二、案例分析进行描述笔记本,实现笔记本不用USB鼠标,USB键盘USB接口,包含打开设备的功能,关闭设备功能笔记本类,包含开机功能,关机功能,使用USB设备的功能鼠标类,要实现USB接口,并具备点击的方法键盘类,要实现USB接口,具备敲击的原创 2022-04-11 10:42:18 · 321 阅读 · 4 评论 -
【零基础学Java】—对象的向上和向下转型(二十七)
【零基础学Java】—对象的向上转型(二十七)对象的向上转型,其实就是多态的写法格式:父类名称 对象名=new 子类名称();含义:右侧创建一个子类对象,把它当做父类来看待使用注意事项:向上转型一定是安全的,从小范围转向大范围public abstract class Animal { public abstract void eat();}public class Cat extends Animal{ @Override public void ea原创 2022-04-11 09:56:48 · 266 阅读 · 3 评论 -
【零基础学Java】—多态(二十六)
【零基础学Java】—多态(二十六)一、多态的概述面向对象的三大特性:封装性、继承性、多态性extends继承或者implements实现,是多态性的前提一个对象拥有多种形态,这就是对象的多态性二、多态的格式与使用代码当中体现多态性,其实就是一句话:父类引用指向子类对象 格式: 父类名称 对象名=new 子类名称(); 或者: 接口名称 对象名=new 实现类名();public class Fu { public void method(){原创 2022-04-10 17:56:03 · 202 阅读 · 3 评论 -
【零基础学Java】—继承父类并实现多个接口(二十五)
【零基础学Java】—继承父类并实现多个接口(二十五)一、使用接口的注意事项1️⃣接口是没有静态代码块或者构造方法的2️⃣一个类的直接父类是唯一的,但是一个类可以同时实现多个接口3️⃣如果实现类所实现的 多个接口中,存在重复的抽象方法,那么只需要覆盖重写一次即可4️⃣如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类5️⃣如果实现类所实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写6️⃣一个类如果直接父类当中的方法和接口当中的原创 2022-04-10 16:36:29 · 1543 阅读 · 1 评论 -
【零基础学Java】—接口(二十四)
【零基础学Java】—接口(二十四)一、接口生活中的接口:接口就是一种公共的规范标准,只要符合规范标准,就可以大家通用Java 接口:接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例原创 2022-04-10 16:08:29 · 484 阅读 · 3 评论 -
【零基础学Java】—发红包案例(二十三)
【零基础学Java】—发红包案例(二十三)题目描述:分析:代码实现:public class User { private String name; private int money; public User() { } public User(String name, int money) { this.name = name; this.money = money; } //显示当前用户有多原创 2022-04-10 14:06:56 · 329 阅读 · 2 评论 -
【零基础学Java】—抽象方法和抽象类(二十二)
一、图解抽象方法如果父类当中的方法不确定如何进行{}方法体实现,那么这就是一个抽象方法二、抽象方法和抽象类的定义抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可public abstract class Animal { //这是一个抽象方法 代表吃东西 但是具体吃什么不确定 //抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即原创 2022-04-09 18:36:16 · 659 阅读 · 11 评论 -
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)一、this关键字的三种用法在本类的成员方法中,访问本类的成员变量在本类的成员方法中,访问本类的另一个成员方法在本类的构造方法中,访问本类的另一个构造方法二、Java继承的三个特点1️⃣Java语言是单继承的一个类的直接父类只能有唯一的一个2️⃣Java语言可以多级继承我有一个父亲,我父亲还有一个父亲,也就是爷爷3️⃣一个子类的直接父类是唯一的,但是一个父类可以有很多个子类可以有很多个兄弟姐妹,生原创 2022-04-09 17:50:50 · 2605 阅读 · 2 评论 -
【零基础学Java】—重写(二十)
【零基础学Java】—重写(二十)一、重写和重载重写(Override):在继承关系当中,方法的名称一样,参数列表一样。重写又称为方法的覆盖、覆写。重载(Overload):方法的名称一样,参数列表不一样方法的覆盖重写的特点:创建的是子类对象,则优先使用子类方法方法覆盖重写的注意事项:必须保证父子类之间方法的名称相同,参数列表也相同@Override:写在方法的前面,用来检测是不是有效的正确覆盖重写,这个注解就算不写,只要满足要求,也是正确的方法覆盖重写子类方法的返回值必须小于等于父类原创 2022-04-09 16:23:09 · 230 阅读 · 2 评论 -
【零基础学Java】—继承的概述(十九)
【零基础学Java】—】继承的概述(十九)一、面向对象的三大特征面向对象的三大特征:封装性,继承性,多态性继承是多态的前提,如果没有继承,就没有多态继承解决的主要问题就是:共性抽取继承关系的特点:子类可以拥有父类的内容子类可以拥有自己专有的内容二、继承的格式在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待例如:父类是员工,子类是讲师,那么讲师就是一个员工定义父类的格式:(一个普通类的定义)public class 父类名称{ //....原创 2022-04-09 14:12:50 · 380 阅读 · 5 评论 -
【零基础学Java】—数学工具类Math(十八)
【零基础学Java】—数学工具类Math(十八)java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学相关的操作public static double abs(double num):获取绝对值public static double ceil(double num):向上取整public static double floor(double num):向下取整public static long round(double num):四舍五入import j原创 2022-04-08 16:14:03 · 434 阅读 · 6 评论