- 博客(40)
- 收藏
- 关注
原创 java 线程案列: 生产者 消费者
public class Product { private String Sp; private String name; //标识符 boolean flay = false; public Product() { } public Product(String sp, String name) { Sp = sp; this.name = name; } public String get.
2022-05-26 18:57:53
190
原创 java 线程案列:死锁
public class Deadlock implements Runnable { //定一个标识符 int flay=1; static Object o1= new Object(); static Object o2 = new Object(); @Override public void run() { System.out.println("flay"+flay); if(flay==1){ //.
2022-05-26 18:51:56
184
原创 java 线程金典买火车票案列
public class BuyTicket implements Runnable { //票数 private static int nn=10; @Override public void run() { for (int i = 0; i <10 ; i++) { try { Thread.sleep(300); } catch (InterruptedExce.
2022-05-26 18:50:41
206
原创 java 线程池
线程池的一些解释文字 一:使用线程池的好处: 1、使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成的消耗2、由于没有线程创建和销毁时的消耗,可以提高系统响应速度3、通过线程可以对线程进行合理的管理,根据系统的承受能力调整可运行线程数量的大小等 二、如何使用线程池(Executors是所有线程池的顶级父类)1.创建线程池对象(使用 Executors关键字来调用相应的线程方法)2.提交任务3.关闭线程池(使用 shutdown) 三:线程池的一些关.
2022-05-26 18:46:06
169
原创 java 线程
线程、进程、程序 线程(Thread):一个程序中的一条执行路径,如果有多条路径就是多线程进程(Process):程序的一次静态的执行的过程程序(Program):用某种语言编写的一组指令的集合线程与进程的区别 1.进程是作为分配的单位的,线程是作为调度和执行的单位2.每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销,而线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小3.在操作系统中能同时运行多个程序,在同一应用程序中有多个顺序流同.
2022-05-26 18:42:08
108
原创 java IO流
File类 看API什么是输入和输出流 以程序为参照物1.输入流:从文件输入到程序中,叫读操作(就是输入流)2.输出流:从程序输入到文件中,叫写操作(就是输出流)I/O流的分类 字节流 InputSteam输入流 输入字节流的顶级父类(超类) ByteArrayInputStream PipedInputStream FilterInputStream .
2022-05-26 18:28:24
100
原创 Java 工具类 ,泛型
工具类 Collections类 方法为主(查看API) Arrays类 Arrays工具类(详情查看API) Arrays提供了数据操作的工具类,包含很多方法 集合和数组之间的转换 数组转成list:1.数组转集合:asList();方法2.集合转数组:toArray();方法mport java.util.*; /** * Collections工具类 * 在使用二分查找法的前提是先要对集合中的元素进.
2022-05-03 11:17:25
769
原创 java Map接口
Map映射:<k,v>对,又称键值对 通过Key找Value可以找到 通过Value找Key不可以. HashMap和Hashtable的区别:1.HashMap线程不安全,效率高2.HashTable线程安全,效率低3.HashMap中的key和value都可以为空,但是只能允许有一个null值,HashTable都不允许为空 4.TreeMapimport java.util.*; public cl.
2022-05-03 11:13:08
157
原创 java Set接口
Set接口 * Set接口: * 1.无序的 唯一的(不可重复的) * 2.使用TreeSet底层的实现是TreeMap,利用红黑数原理实现,也就是数据传入的数据类型要一致 * 3.设置元素的时候,如果是自定义的对象,会查找对象中的toString方法和hashCode方法,如果没有比较的是地址 * 4.树中的元素是默认会进行排序操作的,如果是基本数据类型,自动比较,如果是引用数据类型,要自定义比较器 * 比较器分类: * 内部比较器: * 1.实现Compara.
2022-05-03 11:09:41
325
原创 java List接口
.List:存放的是单一的值 存储一组 不唯一 有序的对象public class ListDemo { public static void main(String[] args) { List list = new ArrayList(); list.add("abc"); list.add(123); list.add(true); list.add(123); list.add(15.0);.
2022-05-03 11:03:45
139
原创 java 集合框架
1.Collection集合:存放的是单一的值 * 存储不唯一的 无序的对象 * 特点: * 1、可以存放不同类型的数据,而数组只能存放固定类型的数据 * 2、当使用arraylist子类实现的时候,初始化的长度是10,当长度不够用的时候就会自动扩容 * 看源码grow();可知会自动>>1位,也就是扩容1.5倍 * API方法: * 增加数据的方法 * add:要求必须传入的参数是Object对象,因此当写入基本数据类型的时候,包含了自动...
2022-05-03 11:00:25
118
原创 java 内部类
内部类:把一个类定义在另一个类的内部称为内部类 * 使用:创建内部类的对象的时候,需要在内部类的前面加外部类来进行修饰 * 1.内部类可以直接访问外部类的属性和方法 * 2.外部类要想访问内部类,则需创建内部类的对象才可访问 * 3.内部类中不能定义静态属性(静态当然可以) * 4.当内部类和外部类有相同的(属性或者方法)的时候,在内部类中可以直接访问内部类的(属性或方法) * 如果想访问外部类的(属性或者方法)就得用 外部类类名.this.(属.
2022-05-03 10:45:54
102
原创 java 接口
1.接口没有构造器,抽象类可以有构造器 * * 2.接口声明:Interface * * 3.在JDK8之前,接口中只有两部分内容 * * 常量:固搭格式:public static final * * 抽象方法:固搭格式:public abstract * * 4.只要可以通过new关键字创建对象,就会有一个对应的构造器被执行, * * 但是有构造器不一定能实例化 * */public interface TestInterface { //变量 p.
2022-05-03 10:42:24
149
原创 java throw 和throws的区别
* throw和throws的区别: *1.位置不同 * throw:方法的内部 * throws:方法的声明处 * 2.内容不同 * throw new 异常(); * throws+异常类型的对象(可以有多个类型 用,连接) * 3.作用不同 * throw:异常的源头,制造异常 * throws:声明异常,告诉方法的调用者,这个方法可能会出现的异常,然后调用者对这些异常进行处理 */public class ThrowsDemo { private String na..
2022-05-03 10:39:09
2087
原创 java 初识异常
* 异常: * 在程序运行过程中,出现的不正常情况叫做异常 * * 注意: * 1、相同的代码在运行的时候,根据输入的参数或者操作的不同,有可能会发生异常,有可能不会发生异常 * 应该在写代码的过程中尽可能的保证代码的正确性,不要到处都bug * 2、如果要解决代码中出现的异常,需要添加非常复杂的代码逻辑来进行判断,会使代码变得非常臃肿,不利于维护,可读性比较差 * 因此,.
2022-05-03 10:36:32
123
原创 Java 学习记录 多态
多态: * 对应同一个指令(调用同一个名称的方法),不同的对象给予不同的反应(不同的方法实现) * 规范(多态实现的前提): * 1、必须要有继承关系 * 2、子类方法必须重写父类的方法 * 3、父类引用指向子类对象(子类实例) * 多态的目的: * 1、为了提高代码的扩展性和维护性 * 2、方便代码逻辑的编写 * 多态的两种表现形式: * 1、父类作为方法的参数 * 2、父类.
2022-04-16 12:17:04
119
原创 Java学习记录 抽象方法
/* java中的对象是现实世界的具象化,但是在现实世界中,某些类并不具备实例化的意义,因此可以定义为抽象类抽象类: 1.创建抽象类的时候需要添加abstract的关键字 2.不能进行实例化,也就是不能new对象 3、抽象类中的某些方法需要子类进行更丰富的实现,父类实现没有意义,此时可以将抽象类 * 中的方法定义为抽象方法,没有具体的实现,只包含方法名称,返回值,参数列表,访问修饰符 * 4、使用abstract关键字修饰的方法叫做抽象方法,..
2022-04-16 12:03:35
108
原创 Java 学习记录 继承 重写 super关键字
/*继承: 表示父类跟子类之间的关系 当两个类或者多个类具备相同的属性和方法的时候,可以提取出来,变成父类,子类可以继承 子类跟父类是is-a的关系 使用: 1.使用继承的时候需要使用extend关键字 2.使用继承关系之后,父类中的属性和方法都可以在子类中进行使用(非私有属性和非私有方法) 3.java中是单继承关系(如果包含多个父类,同时父类中包含重名方法,无法决定该调用谁)super: 是直接父类 对象的引用 用途: .
2022-04-16 11:54:34
114
原创 Java面向对象 封装
定义类的时候需要包含一下组件: 私有属性 构造方法(无参构造方法和自定义构造方法) set/get方法 普通方法 public class Dog { private String name; private int age;//私有属性,只能在当前类中调用 private int weight; //构造器 public Dog(){ } //全参构造器 public Dog(Stri...
2022-03-09 13:23:11
115
原创 Java 代码块
代码块:使用{}括起来一段代码叫做代码块分类: 普通代码块:定义在方法中,使用{}括起来的代码块叫做普通代码块 构造代码块:定义在类中的使用{}括起来的代码叫做构造代码块 注意:每次代码运行的时候会将构造代码块中的代码添加到构造方法的前面 构造代码块中的代码会添加到每个构造方法中,当使用this(参数)的时候不会添加 静态代码块:使用static{}括起来的,在程序载入的时候优先执行 数据库连接等其他提前需...
2022-03-09 13:16:29
131
原创 Java Package命名、import包
Package包名定义:* 1:名字全部小写,中间用.隔开* 2;一般都是公司域名倒着写* 比如:www.baidu.com* 包名:com.baidu.* 3:包名的命名规则:* 企业性质.企业名称.项目名称.模块名称.子模块名称...* 企业性质:com org* 企业名称:baid...
2022-03-09 13:13:52
420
原创 Java 面向对象 super关键字
super关键字:* 1.可以修饰属性和方法* 2.在子类的方法中,可以通过 super.属性 super.方法的方式,* 显示的去调用父类提供的属性和方法。在通常情况下,super.可以省略不写* 3.但在特殊情况下必须要写,* 比如:* 1:当子类的属性和父类重名时,想使用父类的属性就必须要使用 super.属性来进行调用* 2:当子类的方法和父类重名时,想使用父类的方法就必须要使用 super.方法来进行调用* su...
2022-03-09 13:05:33
230
原创 Java static关键字
static:修饰成员变量时,表示静态成员变量或叫类变量 普通变量在使用的时候,必须要通过对象名进行调用 类变量或者静态变量可以使用对象名调用也可以使用类名进行调用 修饰方法的时候,表示静态方法或者叫类方法 普通方法在使用时,必须要通过对象名进行调用 类方法或者静态方法可以使用类名,也可以使用对象名注意: 1.静态变量,在创建对象之前被初始化,或者说在类被载入之前进行初始化 2.静态变量被所有的对象共享,属于公共变量,对象和类都可以直接...
2022-03-09 12:53:52
189
原创 Java 面向对象 this关键字
this:表示当前对象的指针* 指向当前对象,表示对当前对象的调用* 用途:* 1、构造方法,当构造方法的名称跟类的成员变量的名称一样的时候,可以使用this代表当前对象* 注意:当构造方法中需要其他构造方法时,可以使用this(参数列表)调用其他构造方法,但是需要位于方法体的第一行* 2.普通方法中:* 当多个普通方法需要互相调用时,可以使用this.方法来进行调用,指的是当前对象的其他方法* ...
2022-03-09 12:44:22
264
原创 Java学习记录:冒泡排序
冒泡排序从小到大package Sz;public class Maopo { public static void main(String[] args) { int[] array = {1, 3, 5, 7, 9, 2, 4, 6, 8}; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - 1 - i; j++) {.
2021-12-19 13:10:21
370
原创 Java课后作业:采用电话传递数据,是四位的整数,传递过程中是加密的,加密如下:每位数字都加上5,然后用和除以10的余数代替该数字,第一位和第四位交换,第二位和第三位交换位置:
package Sj;import java.util.Scanner;public class JM { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入四位整数:"); int num =sc.nextInt(); //获取个位上的数字 int b1=num.
2021-12-16 13:20:17
1251
原创 Java学习记录:面向对象
定义类的时候,属性和方法不是必须的。一个源文件中可以有N个类,但是有且只能有一个public修饰的类,并且这个源文件的名称必须和public修饰的类名一致属性:(成员变量) 语法: [修饰符] 数据类型 属性名 = [默认值]; 注意: 1、修饰符和默认值可以没有,没有的时候系统会根据数据类型对应的给默认值 2、数据类型和属性名一定要有,属性名的定义要符合合法的标识符命名规范方法: 语法: [修饰符] 方法的返回类型 ...
2021-12-15 20:11:39
121
原创 Java学习记录: 二维数组
二维数组:数组中的每一个元素又是一个一维数组 多维数组不必是规则矩阵public class ZuoYe{ public static void main(String[] args){ /*int[] array = new int[5]; //定义二维数组 int[][] array2 = new int[3][]; array2[0] = new int[2]; ...
2021-12-15 19:55:03
275
原创 Java学习记录: 数组作业
数组:存储一组相同数据类型的有序集合。 特点: 1、数组中的元素必须是同一种数据类型,可以是基本数据类型,也可以是引用数据类型 2、获取数组元素需要使用下标来获取,下标范围[0,length-1] 3、数组在定义的时候必须指定大小,并且一旦指定大小之后是不能修改的 4、数组中的元素是有序集合,这个有序指的不是大小排序,指的按照插入的先后顺序 使用...
2021-12-15 19:30:52
483
原创 java 作业计算圆的面积和周长
package zuoye;import java.util.Scanner;public class BAN { public static void main(String[] args) { final double pi=3.14; Scanner sc=new Scanner(System.in); System.out.println("请输入圆的半径:"); double a=sc.nextDouble();.
2021-12-14 21:24:44
2146
1
原创 Java学习记录:for循环
for循环:or(初始化1;条件判断2;步进器4){ 逻辑代码3 } 执行顺序:1-2-3-4-2-3-4-2-3-4... for循环的特点: 1、简洁,用的最多 2、for循环的初始化变量的作用域只在for循环体中可用 而while循环的初始化变量是从定义开始到方法结束用for循环计算1-100之内的偶数和public c...
2021-11-30 18:36:13
244
原创 Java 学习记录 :循环
while循环: 先判断条件,在执行逻辑代码四部分组成:1,初始化:循环的初始化变量2.条件判断:条件返回必须是true或false 3.循环体:条件满足的话执行逻辑代码4:迭代调降:给循环跳出的条件public class WhileDemo{ public static void main(String[] args){ //while循环 //输出1-...
2021-11-30 18:18:54
280
原创 java 学习记录:Java流程控制语句:
Java流程控制语句:单分支结构:只有一个条件,符合就执行双分支结构:有两个条件,符合那个继执行哪个语句块多分支结构:有多个条件,匹配上哪个就执行哪个 单分支结构单分支结构 //借用JDK提供的Math数学类,random()方法是生成一个随机数,返回类型是double类型,数据范围是[0,1)生成一个【0-5】的随机数iint mun=(int)Math.random()*6...
2021-11-24 12:36:35
328
原创 java学习记录:运算符
运算符: 算术运算符: +,-,*,/,%,++,-- 赋值运算符 = 一个=是赋值运算符,==是关系运算符 扩展赋值运算符:+=,-=,*=,/= 关系运算符: >,<,>=,<=,==,!= 两边一般都不是具体的值,而是表达式 逻辑运算符: &&,||,! 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!) 条...
2021-11-16 22:18:21
106
原创 Java学习记录:数据类型
数据类型 java是一种强类型的语言 强类型语言:在使用变量之前,必须显示的声明其变量的数据类型。 java 弱类型语言:在使用变量之前,不需要显示声明变量的数据类型,会自动根据赋值类型识别 js,python,scala 基本数据类型:4类8种 整数类型: sbyte short int long 不同的整数类型表示不同的长度 ...
2021-11-15 17:58:50
102
原创 Java学习记录:标识符的命名规范
硬性要求:1、必须以字母_下划线、美元符$开头2、其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合 3、大小写敏感,长度无限制 4、不可以是Java的关键字和保留字,这些是供内部使用的 常规建议: 1、驼峰命名 类名、接口名一般首字母都是大写,从第二个单词开始首字母都要大写 变量名、方法名一般第一...
2021-11-14 21:48:02
147
原创 Java学习记录:常量和变量
变量和常量 定义 变量:在我们程序运行的过程中,值会发生变化的量成为变量; 常量:在我们程序运行的过程中,值不会发生变化的量成为常量; 语法:定义一个变量和常量的语法 变量: 数据类型 变量名 = 值; 常量: final 数据类型 变量名 = 值; ...
2021-11-14 21:05:46
106
原创 Java学习记录,第一个代码HelloWorld
public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloJava!"); }}javac HelloWorld.java (javac——编译)java HelloJava (查看内容)...
2021-11-07 22:12:15
788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人