java语法基础
Mr.易湿
这个作者很懒,什么都没留下…
展开
-
线程通信wait()、notify()
一、线程通信(线程交互):当多个线程完成某些特定任务的时候,线程之间有时也需要一定的通信,即线程通信例如:模拟银行账户,用户A不断往该账户中存钱,最多存储10000元,若账户己满,需要通知用户B取钱用户B不断从该账户中取钱,若余额不足时,需要通知用户A存钱使用两个线程打印1-100,线程1、线程2 交替打印二、在java.Long.Object类中【等待唤醒机制】wait():使当前"同步监视器"上的线程进入等待状态,同时释放锁notify()/notifyAll():唤醒当前"同步监视器原创 2023-01-17 20:13:20 · 228 阅读 · 0 评论 -
线 程 同 步、线程的死锁问题
线程同步:模拟售票程序出现问题: 当多个线程同时访问共享数据时,产生无序、重复、超额售票等多线程安全问题解决:将多个线程需要访问的共享数据,包装起来视为一个整体,确保一次只有一个线程执行流访问共享数据Java为上述问题提供了相应的解决办法: 1、同步代码块 synchronized(同步监视器){ //多个线程需要访问的共享数据 } 同步监视器:俗称“锁” ,可以使用任意类型的对象充当。但是必原创 2023-01-17 16:08:04 · 839 阅读 · 0 评论 -
线程的优先级
线程的优先级(1-10):默认的优先级为:5;优先级高并不意味着线程一定会优先执行,优先级高可以更高概率的获取cpu的资源setPriority():设置线程优先级getPriority():获取线程优先级MAX_PRIORITY : 10MIN_PRIORITY : 1NORM_PRIORITY :5原创 2023-01-15 21:45:27 · 503 阅读 · 0 评论 -
线程的控制
线程的控制sleep(Long millis):使当前线程进入睡眠状态(是一个静态方法)join() / join(Long millis):是当前线程进入阻塞状态(是一个实例方法)interrupt():中断阻塞状态的线程isAlive():判断当前线程是否处于存活状态yield():线程让步原创 2023-01-15 20:18:15 · 175 阅读 · 0 评论 -
结束线程---使用通知的方式
结束线程:采用通知的方式,通常在线程执行体中写一些持续执行的语句,比如说循环,因此,控制住循环,就可以控制住当前的线程在main方法中创建并后动两个线程·第一个线程循环随机打印1oo以内的整数﹐直到第二个线程从键盘读取了Q命令·原创 2023-01-15 18:48:24 · 264 阅读 · 0 评论 -
多线程---创建执行线程的方式之二
一、创建执行线程的方式二:①声明一个类实现Runnable 接口②实现接口中的run()方法,同时编写线程执行体③创建该实现类的实例④创建Thread类的实例⑤将实现类的实例作为参数传递给Thread的构造器⑥调用Thread的start()方法启动线程,默认调用run()方法二、创建执行线程的两种方式的区别?①实现Runnable接口的方式解决了Java中单继承的局限性②若多个线程需要访问共享数据时,首选使用 实现Runnable接口的方式原创 2023-01-14 12:11:35 · 91 阅读 · 0 评论 -
多线程原理及创建方式之一
一、进程:为了完成某项特定的任务,使用某种语言,编写一组指令的集合进程:正在进行中的程序线程:在一个进程中,执行的一套功能流程,称为线程 在一个进程中,执行的多套功能流程,成为多线程二、为什么使用多线程?抢占式策略系统:系统会为每个执行任务的线程分配一个很小的时间段﹐当该时间段用完后﹐系统会强制剥夺其 cpu 的执行权交给其他线程完成任务1、提高效率:尽可能的利用cpu的资源2、增强用户体验JVM:多线程main方法称为主线程三、线程的常用方法currentThread原创 2023-01-14 10:34:05 · 79 阅读 · 0 评论 -
java.io.File类
file1.renameTo(file2):file1必须存在,file2必须不存在。如果目录里面有文件删除目录返回false,没有则返回true。该方法获取的是该目录中所有的文件和目录的列表名(名称)renameTo(File newName):重命名。若hello.txt不存在则返回false。若删除的是目录,则需要将目录中所有的内容清空。mkdirs:不管存不存在,直接创建目录。若两个路径都存在也返回false。前提是所见目录的上级目录存在。获取该目录下文件的对象。原创 2023-01-10 00:14:02 · 335 阅读 · 0 评论 -
IO流_转换流与编码解码
【代码】IO流_转换流与编码解码。原创 2023-01-09 20:23:16 · 126 阅读 · 0 评论 -
IO流(控制台IO与打印流)
标准输入流:System.in是单例的:IO流(控制台IO与打印流)原创 2023-01-09 10:06:06 · 86 阅读 · 0 评论 -
对象的序列化
对象流:ObjectInputStream & ObjectOutputStream1、对象的序列化:将内存中的对象永久的以二进制形式保存到磁盘中①创建节点流对象②(可选)创建缓冲流包装对应节点流,用于提高效率③创建对象流包装对应的缓冲流,用于完成序列化④通过writeXxx()方法完成序列化⑤需要序列化对象的类必须实现java.io.Serializable接口⑥提供序列号private static final Long SerialVersionUID=(long型的id)L;2、原创 2023-01-07 23:56:21 · 299 阅读 · 0 评论 -
IO流的包装与链接、缓冲流
缓冲流原创 2023-01-06 23:32:42 · 120 阅读 · 0 评论 -
IO流、文本文件和非文本文件的读、写、复制
②:按数据类型不同:字节流、字符流(字符流用于操作文本文件:txt .java)(字节流用于操作非文本文件 .avi .jpg .mp3)①:按流向不同:输入流、输出流(以程序为主体)抽象基类 节点流。③:按角色不同:节点流、处理流。二、IO流的体系结构。原创 2023-01-05 20:56:42 · 159 阅读 · 0 评论 -
Collections工具类
操作集合的工具类:CollectionsEnumeration:(了解)古老的集合和古老的迭代器。Vector:是一个古老的实现,是线程安全的,因此效率低。操作集合的工具类:Collections。junit4默认不接收键盘输入。原创 2023-01-03 22:07:54 · 69 阅读 · 0 评论 -
操作properties属性文件
操作properties属性文件原创 2023-01-03 19:07:05 · 106 阅读 · 0 评论 -
遍历Map的三种方式
Map的遍历方式一、获取Map中所有的key组成的set;需用到的方法:keySet()方法Map的遍历方式二、获取Map中所有的value组成的Collection;需用到的方法:values()方法Map的遍历方式三、获取Map中所有的Entry(是Map的内部类,一个Entry对应着一个key和一个value)组成的Set ;用到的方法:entrySet()原创 2023-01-03 10:34:21 · 252 阅读 · 0 评论 -
Map系列映射集合
Map系列映射集合、Map常用方法原创 2023-01-01 23:09:58 · 131 阅读 · 0 评论 -
集合的遍历
1、增强for循环 for(被遍历集合中元素的数据类型 变量名 : 被遍历的集合){ }2、使用Iterator迭代器①、获取当前集合的迭代器②、通过hasNext()、next()方法配合遍历集合原创 2023-01-01 16:12:52 · 82 阅读 · 0 评论 -
Comparator定制排序
【代码】Comparator定制排序。Comparator:定制排序 ①声明一个类实现Comparator接口 ②实现接口中的抽象方法compare(Object o1,Object o2) ③将该实现类的实例作为参数传递给TreeSet的构造器原创 2022-12-30 23:23:26 · 201 阅读 · 0 评论 -
TreeSet
①需要添加到TreeSet 集合中对象的类,实现Comparable接口。②实现接口中的抽象方法compareTo(Object o)>Comparable:自然排序。TreeSet:拥有指定的排序方式。原创 2022-12-30 23:08:55 · 81 阅读 · 0 评论 -
LinkedHashSet
LinkedHashSet:是HashSet的子类,相似于HashSet多了链表维护元素的顺序,遍历效率高于HashSet 增删效率低于HashSet原创 2022-12-30 22:30:06 · 174 阅读 · 0 评论 -
HashSet
【代码】HashSet。原创 2022-12-30 18:32:51 · 123 阅读 · 0 评论 -
LinkedList常用方法
【代码】LinkedList常用方法。原创 2022-12-29 23:07:37 · 362 阅读 · 0 评论 -
List常用方法
Object set(int index, Object ele):将index索引位置的元素修改为ele。>int indexOf(Object obj):查找某个元素的索引位置,找到返回索引值,找不到返回-1。>void add(int index, Object ele):在index索引位置添加元素ele。>Object remove(int index):删除指定索引位置的元素。>Object get(int index):获取指定索引位置的对象。原创 2022-12-29 22:50:56 · 107 阅读 · 0 评论 -
集合Collection
Collection接口原创 2022-12-29 21:26:38 · 71 阅读 · 0 评论 -
java二维数组打印杨辉三角
使用二维数组打印一个10杨辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1...【提示】1.第一行有1个元素,第n行有n个元素2.每一行的第一个元素和最后一个元素都是13.从第三行开始,对于非第1个元素和最后一个元素yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j]...原创 2022-08-03 19:58:24 · 1213 阅读 · 0 评论 -
对象在内存中的流程、局部变量&成员变量
变量局部变量&成员变量属性:也叫成员变量,也叫实例变量成员变量与局部变最的区別?①作用域不同②内存中的位置不同③成员变量有默认值,而局部变量没有默认值(局部变量在使用前必须赋初始值)...原创 2022-07-30 16:51:42 · 98 阅读 · 0 评论 -
面向对象编程
面向过程:强调的是功能行为面向对象:将功能行为封装进对象,强调具备了功能行为的对象//2.面向对象更加注重前期对类的设计:属性&方法 优点:有很好的通用性和拓展性3.将面向对象思想融入到java 代码中 将现实生活中一类事物的共性内容,进行提取,抽象成相应的 java 类,使用 java 中的类对其进行描达例如:现实生活中的事物:张三李四王五共性内容:姓名 年龄 性別 吃饭的功能 睡觉的功能4.类是抽象的,类描述的是现实生活中的“一类”事物,若需要具体到某“一个”事物,则....原创 2022-07-30 16:05:18 · 111 阅读 · 0 评论 -
方法的重载 --- Overload
方法重载 Overload定义三个重载方法max0,第一个方法求两个int值中的最大值,第二个方法求两个double值中的最大值,第三个方法求三个double值中的最大值,并分别调用三个方法。原创 2022-07-29 16:32:21 · 303 阅读 · 0 评论 -
参数的值传递-----基本数据类型
参数的值传递:①基本数据类型:当基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变②引用数据类型:原创 2022-07-29 16:26:02 · 323 阅读 · 0 评论 -
跨类调用方法、java编译器自动编译流程
跨类调用方法:(暂时使用static修饰的方法为例)格式:类名.方法不仅可以跨跨类,还可以跨.java源文件java编译器自动编译流程:现在当前.java源文件的相同路径下找,是否有对应类的,Java源文件,如果有则编译如果没有则找是否有.class字节码文件,若有则执行,若没有则报错......原创 2022-07-29 11:45:16 · 262 阅读 · 0 评论 -
编写程序,声明一个method方法,在方法中打印10*8的矩形,在main方法中调用该方法修改上一个程序,在method方法中,除打印一个10*8的矩形外,在计算矩形的面积,并将其作为方法返回值
编写程序,声明一个method方法,在方法中打印10*8的矩形,在main方法中调用该方法修改上一个程序,在method方法中,除打印一个10*8的矩形外,在计算矩形的面积,并将其作为方法返回值在main方法中调用该方法,接收返回的面积值并打印修改上一个程序,在method方法提供m,n二个参数,打印一个m*n的矩形,在计算矩形的面积,并将其作为方法返回值在main方法中调用该方法,接收返回的面积值并打印...原创 2022-07-29 11:43:49 · 1114 阅读 · 0 评论 -
java中的方法
方法的定义、方法的格式、修饰符、方法的注意、方法的声明原创 2022-07-29 11:42:27 · 579 阅读 · 0 评论 -
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序原创 2022-07-29 11:31:10 · 2342 阅读 · 0 评论 -
break、continue结束标签指定循环
break、continue结束标签指定循环原创 2022-07-29 11:23:30 · 97 阅读 · 0 评论 -
特殊流程控制语句(break、continue)
特殊流程控制语句 break:用于跳出当前循环 continue:用于跳出当次循环原创 2022-07-29 11:05:40 · 109 阅读 · 0 评论 -
嵌套for循环打印质数
打印1-100的质数:除了1和它本身以外不能被其它自然数整除的数原创 2022-07-29 10:39:40 · 326 阅读 · 0 评论 -
打印99乘法表
打印99乘法表原创 2022-07-28 22:21:12 · 104 阅读 · 0 评论 -
嵌套循环(打印图形)
嵌套循环:一个循环充当了另一个循环的循环体. 打印图形原创 2022-07-28 22:18:42 · 704 阅读 · 1 评论 -
while循环与do-while循环
while循环与do-while循环、do-while与while区别原创 2022-07-28 22:01:37 · 150 阅读 · 0 评论