自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复习集合Collection、自定义数组、链表源码分析和实现

代表:ArrayList和Vector以ArrayList为例。为了让大家印象更深刻一些,我们模仿ArrayList写一写一小部分源码,来理解它底层的原理。//实际存储对象的数组,初始长度为4//代表实际元素的个数,size <= elementData.length//编写add//判断是否需要扩容size++;//编写add(int index,E e)throw new ArrayIndexOutOfBoundsException("输入有误,数组下标越界异常");

2023-09-18 21:03:28 171

原创 集合与泛型

泛型:泛指某个类型,代码中看到、、等都是和泛型有关的。【修饰符】 class 类名<泛型字母列表>{【修饰符】 interface 接口名<泛型字母列表>{<泛型字母列表>,可以是1个也可以是多个字母。<泛型字母列表>,不推荐用单词,建议使用单个的大写字母为什么不用单词?容易引起误会需求:声明一个泛型类Coordinate坐标,坐标类中应该包含两个属性,分别是x和y,代表经度和维度值。这里的x和y的类型不确定,可能是Integer,Double,String等。/*

2023-09-17 11:26:32 195

原创 多线程回顾、集合Collection、Set、List等基本知识

问: 多线程的两种创建方式?问:多线程通常会遇到线程安全问题?什么情况下会遇到线程安全问题?答:一个数据被多个线程访问(有读有写)解决这个问题的方式?SE:同步锁 synchronizedA : 同步代码块B : 同步方法同步锁的要求A : 这多个线程必须使用同一个锁对象B : 同步锁的类型没有要求同步方法的锁对象是谁?A : 非静态方法 : thisB : 静态方法 : 当前类名.class加同步锁的代码范围?单词的原子性的任务代码原子性 : 不可拆分,最小单位。

2023-09-15 22:00:51 609

原创 线程中的方法补充、线程案例、线程池、Callable、定时器、正则表达式

1.概述:是一个接口,需要new实现类对象2.实现类:ReentrantLock3.方法:lock()获取锁unlock()释放锁//首先获取lock对象@Overridetry {//获取锁System.out.println(Thread.currentThread().getName()+"抢到了第"+ticket+"张票");ticket--;}finally {//释放锁Thread t1 = new Thread(ticket,"张三");

2023-09-14 10:54:47 112

原创 包装类、多线程的基本使用

1.概述:Integer是int的包装类2.构造:aInteger(String i):i必须是数字格式b//输出Boolean包装类中 , 底层调用了parseBoolean(String s) , 在parseBoolean中调用了equals.IgnoreCase(s) , 忽略了大小写在CPU和内存之间专门为main开辟的通道叫做主线程主线程专门运行main方法的​ 指的是两个或者两个以上的线程在执行的过程中,由于竞争同步锁而产生的一种阻塞现象;

2023-09-12 19:51:38 347

原创 Math类、BigInteger、BigDecimal、Date、Calendar、SimpleDateFormat、LocalDate、Period、Duration、System以及Arrays类

1.将来我们会遇到非常大的整数,大到比long的值还有大,我们将这类数据称之为"对象"2.作用:BigInteger用于处理超大整数3.构造方法:4.方法:BigInteger add(BigInteger val) 返回其值为 (this + val) 的 BigIntegerBigInteger subtract(BigInteger val) 返回其值为 (this - val) 的 BigInteger。

2023-09-11 20:31:12 46

原创 String类、String常用API、StringBuilder

概述: String类代表字符串特点:Java程序中的所有字符串字面值(如 “abc”) 都作为此类的实例(对象)实现"abc" 就是对象 , String是对象的类型 , s是对象名凡是带双引号的 , 都是String的对象字符串是常量 , 它们的值在创建后不可更改s += "de";- > 产生了新对象String对象是不可变的 , 所以可以共享//true1.概述:一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(线程不安全,效率高)

2023-09-10 19:52:26 47

原创 深入浅出StringBuilder添加时如何自动扩容

​ 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(线程不安全,效率高)

2023-09-10 14:43:00 189

原创 Java异常finally、Object、经典接口

需求:键盘录入一个用户名,实现登录功能,如果登录失败,抛出LoginUserException/*此时super将message传给父类Exception然后Exception再将message传给父类ThrowableThrowable收到String,先停止程序,随后打印错误信息*/ //fillInStackTrace()是Java的一个方法,它用于获取和填充在异常发生时的方法调用栈信 息。这个方法通常在抛出异常时由Java虚拟机自动调用,并将获得的栈跟踪信息填充到异常对象中。

2023-09-08 18:52:52 57

原创 Java局部内部类、匿名内部类、异常以及处理异常

System.out.println("心脏在跳");//在方法内调用局部内部类的方法,最终调用eat()来间接调用jump()方法per.eat();代码调试的手速①概述:代码出现了不正常的现象 , 在Java中 , 异常都是一个一个的类②分类 : Throwable类​ Error : 错误 - > 代码出现了重大错误 , 相当于人得了癌症​ Exception : 异常 -> 代码出现了小问题 , 相当于人得了感冒。

2023-09-06 19:32:26 95

原创 Java接口、多态

public interface 接口名 {public abstract 返回值类型 方法名(参数);public default 返回值类型 方法名(形参){方法体return 结果public static 返回值类型 方法名(参数){方法体return 结果前提:必须有子父类继承关系或接口实现关系必须有方法的重写(没有重写 , 多态没有任何意义) , 多态主要是玩重写方法的new 对象 : 父类引用指向子类对象多态弊端:不能直接调用子类特有的功能。

2023-09-05 21:17:15 124

原创 Java的方法重写、super、this、abstract

​ 子类中有一个和父类方法名以及参数一模一样的方法​ 当将共性方法抽取出来时 , 发现不同的子类针对次方法的实现细节不同 , 此时抽取出来的方法体无法直接在父类中确定 , 此时抽取出来的方法体无法直接在父类中确定 , 就可以定义为抽象方法​ 1.抽象方法所在的类一定是抽象类​ 2.关键字:abstract​ a. 修饰符 abstract 返回值类型 方法名(参数);--------抽象方法。

2023-09-05 08:29:46 108

原创 Java中递归、数组反转、二分查找、冒泡排序

间接递归:在方法A()中调用方法B(),在方法B()中调用方法C(),在方法C()中调用方法A();排序,都要进行数组 元素大小的比较,再进行位置的交换。冒泡排序法是采用数组中相邻元素进行比较换位。递归方法调用:方法自己调用自己的现象就称为递归。递归的分类*直接递归 间接递归。实现思想:数组对称的位置元素互换。直接递归:方法自身调用自己。

2023-09-02 12:49:27 65

原创 java数组

数组属于引用数据类型。

2023-08-26 19:45:17 30

原创 Java-嵌套循环(或多重循环)

*练习1:**将一天中的时间打印到控制台。**案例3:**打印5行倒直角三角形。**案例2:**打印5行直角三角形。

2023-07-19 11:07:55 350

原创 Java-无限循环

*案例2:**从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。**案例1:**实现爱你到永远…思考:如下代码执行效果。

2023-07-19 11:03:53 958

原创 Java-do-while循环

如果小了,提示小了;如果对了,就不再猜了,并统计一共猜了多少次。**案例1:**遍历1-100的偶数,并计算所有偶数的和、偶数的个数(累加的思想)**练习1:**随机生成一个100以内的数,猜这个随机数是多少?如果循环体语句块至少执行一次,可以考虑使用do-while循环。**执行过程:**①-③-④-②-③-④-②-③-④-…**案例2:**体会do-while至少会执行一次循环体。遍历没有明显的循环次数(范围)的需求,选择while循环。遍历有明显的循环次数(范围)的需求下,选择for循环。

2023-07-19 11:00:22 150

原创 Java-while循环

*案例2:**遍历1-100的偶数,并计算所有偶数的和、偶数的个数(累加的思想)**练习:**从键盘输入整数,输入0结束,统计输入的正数、负数的个数。**执行过程:**①-②-③-④-②-③-④-②-③-④-…**案例1:**输出5行HelloWorld!**案例3:**猜数字游戏。

2023-07-19 10:55:35 129

原创 Java循环语句for循环以及练习

编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。//注意:此处不能使用if-else,因为有的数字同时会满足多个情况,而if-else是多选一的情况,如果使用if-else会漏选。**练习2:**打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数器的思想)题目:遍历1-100以内的偶数,并获取偶数的个数,获取所有的偶数的和。**执行过程:**①-②-③-④-②-③-④-②-③-④-…

2023-07-18 11:47:47 291

原创 Java中switch-case选择结构

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是一旦匹配成功,不会再判断下一个case的值,直接向后运行,直到遇到break或者整个switch语句结束,执行终止。随机产生3个1-6的整数,如果三个数相等,那么称为“豹子”,如果三个数之和大于9,称为“大”,如果三个数之和小于等于9,称为“小”,用户从键盘输入押的是“豹子”、“大”、“小”,并判断是否猜对了。开发经验:如果既可以使用switch-case,又可以使用if-else,建议使用switch-case。

2023-07-18 11:44:05 494

原创 Java中如何获取一个随机数

1、Math类的random()的调用,会返回一个[0,1)范围的一个double型值。如何产生一个指定范围内的随机整数?范围内的随机整数呢?

2023-07-18 11:06:19 542

原创 Java中Scanner:键盘输入功能的实现

注意:需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常导致程序终止。如何从键盘获取不同类型(基本数据类型、String类型)的变量:使用Scanner。请输入你的网名、你的年龄、你的体重、你是否单身、你的性别等情况。案例:小明注册某交友网站,要求录入个人相关信息。键盘输入代码的四个步骤。

2023-07-17 11:20:10 423

原创 Java中if...else结构的嵌套使用以及练习

*练习 6:**编写程序,声明2个double型变量并赋值。在if的语句块中,或者是在else语句块中,又包含了另外一个条件判断(可以是单分支、双分支、多分支),就构成了嵌套结构。注意:如果if-else中的执行语句块中只有一行执行语句,则此执行语句执行所在的一对{ }可以省略,但是不建议省略。​ (2) 如果是嵌套在else语句块中的,只有当外部的if条件不满足,进入else后,才会去判断内部的条件。**练习4:**小明参加期末Java考试,通过考试成绩,判断其Java等级,成绩范围[0,100]

2023-07-17 11:16:52 1334

原创 Java中if-else结构的基本使用

​ n.如果没有任何关系表达式为true,就执行语句块n+1,然后结束当前多分支。​ 3.如果是false就继续判断关系表达式2看其结果是true还是false。​ 1.首先判断条件表达式,看其结果是true还是false。​ 1.首先判断关系表达式1看其结果是true还是false。​ 1.首先判断条件表达式看其结果是true还是false。​ 2.如果是true就执行语句块1,然后结果当前多分支。​ 4.如果是true就执行语句块2,然后结果当前多分支。​ 2.如果是true就执行语句块1。

2023-07-17 11:13:49 761

原创 Java变量与运算符复习和习题

关键字:被Java赋予特殊含义的字符串。保留字:goto 、 const。

2023-07-17 11:11:26 240

原创 JAVA条件运算符

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2sAlfvcF-1689483557616)(F:\BaiduNetdiskDownload\image-20220312002841945.png)]说明:条件表达式是boolean类型的记过,根据boolean的值选择表达式1或表达式2。运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序。上一行中的运算符总是优先于下一行的。()来控制`表达式的执行顺序。练习1:获取两个整数的较大值。练习2:获取三个数的最大值。

2023-07-16 12:59:26 149 1

原创 JAVA位运算符

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HHkhEjN3-1689483327660)(F:\BaiduNetdiskDownload\image-20200225123445305.png)]运算规则:对应位一个为1一个为0,才为1,否则为0。运算规则:对应位只要有1即为1,否则为0。运算规则:对应位都是1才为1,否则为0。1 & 1 结果为1。1 & 0 结果为0。0 & 1 结果为0。0 & 0 结果为0。1 ^ 1 结果为0。1 ^ 0 结果为1。

2023-07-16 12:55:35 25 1

原创 JAVA逻辑运算符

逻辑运算符,操作的都是boolean类型的变量或常量,而且运算得结果也是boolean类型的值。​ &&:如果符号左边是false,则不在继续执行符号右边的操作。​ ||:如果符号左边是true,则不在继续执行符号右边的操作。不同点: | :如果符号左边是true,则继续执行符号右边的操作。不同点:&:如果符号左边是false,则继续执行符号右边的操作。相同点:如果符号左边是false,则二者都执行符号右边的操作。相同点:如果符号左边是true,则二者都执行符号右边的操作。练习1:区分&和&&

2023-07-16 12:54:10 150 1

原创 Java比较运算符

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hGfXexZ8-1689482843466)(F:\BaiduNetdiskDownload\image-20220312001742263.png)]> < >= <=:只适用于基本数据类型(除boolean类型之外)比较运算符的结果都是boolean型,也就是要么是true,要么是false。= :适用于基本数据类型和引用数据类型。比较运算符"=="不能误写成”=“

2023-07-16 12:47:34 24 1

原创 JAVA赋值运算符

练习7 :你有几种办法实现变量值减1?练习1:如何实现变量的值增加2。练习2:如何实现变量的值增加1。

2023-07-16 12:45:53 357 1

原创 Java算数运算符、案例与练习

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NEoQuzlb-1689385179712)(F:\BaiduNetdiskDownload\image-20220312000848332.png)]案例3:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?案例2:拓展获取一个四位数的个位、十位、百位、千位。练习1:算术运算符:自加、自减。

2023-07-15 09:40:13 239 1

原创 Java运算符(Operator)

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

2023-07-15 09:36:43 224 1

原创 Java进制的分类,二进制转十进制

然后求出-11的反码:在原码的基础上,最高位不变,其余位取反(0变1,1变0),-11的反码如下。高位 低位。为了表示-11的原码,需要把十进制转换为二进制,然后最高位设置为1,-11的原码如下。注意:计算机数据的存储使用二进制 补码 形式存储。然后求-11的补码:反码+1,-11的补码如下。举例二进制表示十进制-11的补码、反码和原码。举例二进制表示十进制11的补码、反码和原码。相加得8+2+1=11。

2023-07-15 09:34:44 208 1

原创 Java-String类的课后练习

【代码】Java-String类的课后练习。

2023-07-15 09:32:08 20 1

原创 Java基本数据类型与String的运算

①任意八种基本数据类型的数据与String类型只能进行连接 “ + ” 运算,且结果一定也是String类型。

2023-07-15 09:29:52 268 1

原创 Java变量与运算符------基本数据类型变量间的强制类型转换规则

自动类型提升时是Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行。:将取值范围大(或容量大)的类型强制转换为取值范围小(或容量小)的类型。

2023-07-15 09:24:54 61 1

原创 Java变量与运算符------基本数据类型变量间的自动类型提升规则

【代码】Java变量与运算符------基本数据类型变量间的自动类型提升规则。

2023-07-15 09:20:24 78 1

原创 布尔类型的使用boolean

​ ---------------------------《Java虚拟机规范8版》拓展:Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的boolean值,在编译之后都是用Java虚拟机中的int数据类型来代替:true用1表示,false用0表示。

2023-07-14 09:40:51 903 1

原创 字符类型的使用char

Java字符类型的使用

2023-07-14 09:39:54 127 1

原创 浮点数据类型的使用

【代码】浮点数据类型的使用。

2023-07-14 09:38:25 84 1

空空如也

空空如也

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

TA关注的人

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