java
一贰三279
这个作者很懒,什么都没留下…
展开
-
线程协作管程法
线程协作 线程协作是线程之间相互协作,处理过共同的数据,也就是消费者与生产者的关系,生产者生产产品,消费者消费产品,当产品消费完消费者需要等待生产者产出产品,同理生产者产出过多也是要等待消费者先去消费。 这里我们来模拟一个买鸡肉的生产者与消费者例子,我们使用管程法,产品我们可以作为数据放在一个数据缓存区。 管程法 public class TestPC { public static void main(String[] args) { Container container=new原创 2021-03-21 15:41:26 · 93 阅读 · 0 评论 -
线程同步并发
线程同步 线程同步也就是线程的并发,是指多个线程同时访问一个资源,这时候因为只有一个资源,就需要出现排队的机制,就比如买车票,如果没有队列的机制,就有可能多个人在同一时间购买到了同一张票,这就会导致问题的出现,线程同步其实就是一种等待的机制,多个访问时就会形成一个对象的等待池,前一个结束才会到下一个,该线程还没有结束时,就会有个锁机制(synchronized),确保线程独占资源,让其他线程等待,线程结束释放锁.。 同步并发的方式有两种,一种是在方法上添加synchronized修饰,另一种则是为同步修改的原创 2021-03-20 21:13:01 · 218 阅读 · 0 评论 -
lambda表达式
lambda表达式 lambda表达式是java 8版本中新加的功能,使用lambda表达式能够使代码看起来更为的简洁,只留下了核心的逻辑。 任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口,如果他是一个函数式接口,那么我们就可以通过lambda表达式来创建该接口的对象。 lambda表达式的类型声明,参数圆括号,大括号和返回关键字都是可选的,也就是可以不要的 下面是lamdba表达式的施行 public class LambdaTest { //静态内部类 static cl原创 2021-03-19 21:01:18 · 63 阅读 · 0 评论 -
多线程的创建
创建多线程 线程创建的步骤: 自定义类要继承Thread类。 重写run()方法,并编写执行体 创建线程对象,调用start()方法启动程序 如图所示,多线程是各个线程并发执行,在主线程这里是main()执行时,系统并发执行子线程中的run()方法 这里新建了一个ThreadTest类继承Thread类,并在类中重写run()方法,而后在main()方法中start()运行该线程。这里不能直接在main()中调用run()方法,如果不用start(),直接调用run()方法就是普通的调用类中的方法,不原创 2021-03-18 21:01:55 · 59 阅读 · 0 评论 -
冒泡排序
冒泡排序 冒泡排序是八大基本排序算法之一,外层循环用来表示冒泡的次数,而内层循环则是进行比较相邻两个元素并交换位置,以此来将数组排序 public static void main(String[] args) { int[] a={1,7,2,5,3,4,8,6}; int[] sort= sort(a); System.out.println(Arrays.toString(sort(a))); } public static int[原创 2021-03-17 20:09:42 · 67 阅读 · 0 评论 -
数据类型拓展
数据类型拓展 整数拓展 在Java中二进制可以用0b表示 ,八进制用0表示 ,十六进制0x表示 这里我们分别输入十进制、八进制和十六进制的数 int i1=10; //十进制 int i2=010; //八进制0 int i3=0x10;//十六进制0x int i4=0b0010;//二进制0b System.out.println(i1); System.out.println(i2); System.out.p原创 2021-03-17 19:02:22 · 69 阅读 · 1 评论