自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程同步安全问题及其解决

线程同步卖票案例案例需求某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票实现步骤定义一个类SellTicket实现Runnable接口,里面定义一个成员变量:private int tickets = 100;在SellTicket类中重写run()方法实现卖票,代码步骤如下判断票数大于0,就卖票,并告知是哪个窗口卖的卖了票之后,总票数要减1票卖没了,线程停止定义一个测试类SellTicketDemo,里面有main方法,代码步骤

2020-11-05 17:04:51 385

原创 线程、多线程三种实现方式及其对比

1.多线程概述1.什么是多线程?线程=生产线多线程=多条生产线2.多线程的作用?提高程序的执行效率(例如一次上传多张图片、例如迅雷同时下载多个文件)3.进程和线程1.什么是进程? 进程是资源分配的最小单位,就是程序执行的过程。可以理解为正在运行的程序 2.进程有什么特点? 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的 并发性:任何进程都可以同其

2020-11-05 16:37:23 577

原创 双列集合遍历

Map-第一种遍历方式方法名说明Set keySet()获取所有键的集合V get(Object key)根据键获取值import java.util.HashMap;import java.util.Map;import java.util.Set;/** * Map的第一种遍历方式 */public class MyMap3 { public static void main(String[] args) { //创建集合并添

2020-11-05 16:14:13 340

原创 单列集合的遍历

1.普通for循环需要根据索引操作

2020-11-05 16:02:27 240

原创 TreeSet集合两种比较器排序Comparable、Comparator

1.自然排序Comparable的使用案例需求存储学生对象并遍历,创建TreeSet集合使用无参构造方法要求:按照年龄从小到大排序提示://o - 要比较的对象//将此对象与指定的对象进行比较以进行排序。 返回一个负整数,零或正整数,因为该对象小于,等于或大于指定对象public int compareTo(T o);实现步骤 1.使用空参构造创建TreeSet集合 用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的 2.自定义

2020-11-05 15:36:00 776

原创 集合基本体系结构

集合和数组的对比:相同点都是容器,可以存储多个数据不同点数组的长度是不可变的,集合的长度是可变的数组可以存基本数据类型和引用数据类型集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类集合的体系结构1单列集合Collection1.什么是Collection集合(顶级接口和特点单列)Collection是单列集合的顶级接口,它没有直接的具体实现类,有两个子接口List和Set2.Collection集合常用方法方法名说明boolean add(E

2020-11-05 14:39:55 910

原创 匿名内部类和Lambda表达式

匿名内部类前提存在一个类或者接口,这里的类可以是具体类也可以是抽象类;格式格式:new 类名 ( ) { 重写方法 } new 接口名 ( ) { 重写方法 }new Inter(){ @Override public void method(){}} 本质本质:是一个继承了该类或者实现了该接口的子类匿名对象。使用场景发现某个方法需要,接口或抽象类的子类对象,我们就可以传递一个匿名内部类过去,来简化传统的代码。Lambda表达式前提使用Lambd

2020-10-16 16:31:42 954 1

原创 多态及特性

多态概述一个对象,多种形态,即同一个对象,在不同时刻表现出来的不同形态使用的前提有继承或者实现有方法的重写有父类引用指向子类对象成员访问特点成员变量 编译看父类,运行看父类成员方法 编译看父类,运行看子类好处与弊端好处 提高代码的扩展性。方法定义时,把父类类型作为参数,在使用时,可以接受任意子类类型参与操作坏处 不能使用子类特有的成员多态转型向上转型 父类引用指向子类对象就是向上转型向下转型 格式:子类类型 对象名 = (子类类型)父类引用;转型的风险和

2020-10-16 14:13:30 118

原创 接口及特性

接口概述:接口就是一种公共的规范标准,只要符合标准,都可以使用。定义接口,实际上就是定义了一套规则/(规范),定义了规则之后,就要求实现类必须按照接口制定的规则编写代码;接口的意义:1.用来定义规范2.用来做扩展特点:1.接口不能被实例化,只能通过创建接口的实例化对象来使用2.接口的实现类,要么重写接口中所有的抽象方法,要么实现类也是抽象类3.接口没有构造方法,因为接口主要是扩展功能的,没有具体存在JDK8,JDK9中,对接口有了新的更新目的是为了在接口中添加一些带有方法体的方法

2020-10-16 13:52:43 291

原创 代码块,静态代码块

代码块概述和分类概述在Java中,使用{}括起来的代码称为代码块;分类局部代码块: 了解,几乎不用 位置:在方法中定义 作用:限定变量的生命周期,及早释放,以便提高内存利用率构造代码块: 了解,偶尔使用 位置:类中方法外定义 特点:每次构造方法执行时,都会执行构造代码块中的代码,并且在构造方法第一行默认继承父类的构造方法super()之后,构造方法执行之前执行; 作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性静态代码块:掌握,在源码时会遇到 位置:类种方

2020-10-16 13:29:28 189

原创 this和super关键字的使用

- this&super关键字:this:代表本类对象的引用super:代表父类存储空间的标识(可以理解为父类对象引用)- this和super的使用分别成员变量:this.成员变量 - 访问本类成员变量super.成员变量 - 访问父类成员变量成员方法:this.成员方法 - 访问本类成员方法super.成员方法 - 访问父类成员方法构造方法:this(…) - 访问本类构造方法super(…) - 访问父类构造方法..

2020-10-09 13:36:20 105

原创 继承的描述

继承1、概述继承是描述java中类与类之间的关系的;使用extends关键字表示,前面是子类,后面是父类;2、什么时候使用继承当我们描述的多个事物之间存在包含(is a)关系的时候,可以使用继承的技术表示;使用继承之后,子类可以直接使用父类非私有的成员;3、继承的语法格式public class 子类类名 extends 父类类名{ }4、继承的好处和弊端好处 1. 提升代码的复用性 2. 提升代码的维护性 3. 为多态提供了前提 弊端 1. 降低了子类代码的独立性

2020-10-09 13:26:30 852

原创 方法的重载、重写

方法重写1、方法重写概念子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)2、方法重写的应用场景当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容3、Override注解用来检测当前的方法,是否是重写的方法,起到【校验】的作用方法重写的注意事项私有方法不能被重写(父类私有成员子类是不能继承的)子类方法访问权限不能更低(public > 默认 > 私有)静态方法

2020-10-09 13:12:58 181

原创 学生管理系统,简易版学生管理

简易版学生管理系统。能够在控制台向集合中添加,删除,修改,查看学生信息;根据学生学号判断集合中是否存在学生信息,并给出提示;先提前创建一个学生类,包含学号,姓名,年龄,生日属性,再在测试类中实现;学生类:public class Student { private String sid; private String name; private int age; private String birthday; public Student() { }

2020-10-04 11:05:28 1221

原创 使用不同随机数为数组赋值

定义一个长度为10的int型的数组arr,要求使用不重复的随机数为arr赋值,随机数范围为[1,20]。public static void main(String[] args) { int[] arr = new int[10]; Random r = new Random(); for (int i = 0; i < arr.length; i++) { int num = r.nextInt(20)+1;

2020-09-26 22:06:19 679

原创 根据索引交换数组元素

请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,结果为{11, 66, 33, 44, 55, 22}public static void main(String[] args) { int[] arr= {11, 22, 33, 44, 55, 66}; jiaoHuan(arr,1,5); } public s

2020-09-26 22:02:55 1150

原创 判断数组中是否存在元素

定义一个方法,传入一个整数参数,方法可以判断一个int数组中是否存在这个整数,存在返回true,不存在返回false。在main方法汇总调用该方法,打印结果。 public static void main(String[] args) { int[] arr = {11, 22, 33, 44, 55}; boolean b = panDuan(arr, 33); System.out.println(b); } publ

2020-09-26 22:00:43 2471

原创 键盘录入求绝对值

数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试public static void main(String[] args) { //### 题目1: //数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。 // 请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试 Scanner sc = new Scanner

2020-09-26 21:57:39 1782

原创 随机给数组赋值,按要求打印

(1)定义一个长度为10的int类型数组arr,使用随机数为数组循环赋值,随机数范围为[10,99](2) 提示用户键盘录入一个1-5之间(包含1和5,无需用代码判断,提示语即可)的整数num(3) 遍历arr,如果元素的十位或者个位数字是num的倍数,则输出该元素public static void main(String[] args) { //2、按要求在main方法中完成以下功能: //(1)定义一个长度为10的int类型数组arr,使用随机数为数组循环赋值,随

2020-09-26 21:53:05 1329 1

原创 求出1988年到2019年的所有闰年年份。

闰年的规则是:四年一闰,百年不闰,四百年再闰。(年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年).请打印出1988年到2019年的所有闰年年份。public class RunNian { public static void main(String[] args) { for (int i = 1988; i <= 2019; i++) { if (i % 4 == 0 && i % 100 != 0 || i

2020-09-26 21:48:54 1461

原创 ## 求100-1000所有的水仙花数,每行打印两个水仙花数,并打印水仙花的个数;

求100-1000所有的水仙花数,每行打印两个水仙花数,并打印水仙花的个数;水仙花数就是一个三位数的个位十位百位各自的立方和等于这个三位数本身的数,比如371 = 3^3 + 7^3 + 1^3;371就是一个水仙花数;public class ShuiXianHua{ public static void main(String[] args){ int count = 0; for(int i = 100; i <= 999; i++){ int ge = i % 10;

2020-09-26 21:42:58 1395

原创 猜数字小游戏

猜数字小游戏:需求: 程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?当猜错的时候根据不同情况给出相应的提示如果猜的数字比真实数字大,提示你猜的数据大了如果猜的数字比真实数字小,提示你猜的数据小了如果猜的数字与真实数字相等,提示恭喜你猜中了代码实现:import java.util.Random;import java.util.Scanner;public class CaiDaXiao{ public static void main(String[

2020-09-16 21:54:49 393

原创 JDK环境变量配置

JDK环境变量配置第一步:Windows + E 打开此电脑,右击此电脑 ---->点击属性;第二步:点击高级系统设置第三步:进入高级后,点击环境变量第四步:在系统变量里点击新建第五步:点击确定;第六步:点击系统变量中Path,点击编辑;第七步:编辑文本;第八步:第九步:把所有的确定都点上就可以了;...

2020-09-16 21:03:20 80

空空如也

空空如也

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

TA关注的人

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