Java
文章平均质量分 57
大多数的沉默|
俗人一个
展开
-
&和&&的区别?以及 &0x0f 的含义
1、&和&&都可以用作逻辑与的运算符,表示逻辑,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。2、&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException,如果将&&a原创 2021-04-03 10:32:46 · 11197 阅读 · 2 评论 -
synchronized之同步代码块和同步方法
1.synchronized同步关键字这里涉及到多个线程对共享资源进行处理,这里就必须要给线程“排队”,使用的关键字是synchronized(同步),在程序中,给对共享资源进行处理的代码部分(整个方法或代码块)添加此关键字。相当于给代码块加锁,取得钥匙的线程对资源操作,完成后将钥匙交予其他线程,这保证了同一个资源某一时间内只有一个线程可以对其修改等操作。同步代码块synchronized(lock){操作共享资源代码块}lock是一个锁对象,它是同步代码块的关键。当线程执行同步代码块时,首先原创 2021-02-25 19:49:34 · 1005 阅读 · 0 评论 -
线程的优先级,线程让步,线程插队
线程的优先级在应用程序中,如果要对线程进行调度,最直接的方式就是设置线程的优先级。优先级越高的线程获得CPU执行的机会越大,而优先级越低的线程获得CPU执行的机会越小。线程的优先级用1~10之间的整数来表示,数字越大优先级越高。除了可以直接使用数字表示线程的优先级,还可以使用Thread类中提供的三个静态常量表示线程的优先级,如表所示。Thread静态常量功能描述static int MAX_PRIORITY表示线程的最高优先级,相当于值10static int MIN_PR原创 2021-02-09 17:10:48 · 877 阅读 · 0 评论 -
两种实现多线程方式的对比分析
既然直接继承 Thread类和实现Runnable接口都能实现多线程,那么这两种实现多线程的方式在实际应用中又有什么区别呢?接下来通过一种应用场景来分析假设售票厅有四个窗口可发售某日某次列车的100张车票,这时,100张车票可以看作共享资源,四个售票窗口需要创建四个线程。为了更直观显示窗口的售票情况,可以通过 Thread的currentThread()方法得到当前的线程的实例对象,然后调用getName()可以获取到线程的名称。接下来,首先通过继承Thread类的方式来实现多线程的创建。public原创 2021-02-01 14:14:52 · 502 阅读 · 0 评论 -
Lambda表达式
为什么要使用Lambda表达式?避免匿名内部类定义过多可以让你的代码看起来很简洁去掉了一堆没有意义的代码,只留下核心的逻辑。也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉得更乱,看不懂了。那是因为我们还没有习惯,用的多了,看习惯了,就好了。理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在。函数式接口的定义:public interface Runnable { public abstract void ru原创 2021-01-27 23:27:17 · 92 阅读 · 0 评论 -
多线程的创建&&继承Thread类和实现Runnable接口的对比
package com.mrsoft;public class ThreadDemo extends Thread { @Override public void run() {// 使用新线程运行for循环中的代码 for (int i = 0; i < 10; i++) { System.out.println("新线程输出:" + i);// 在控制台输出10条测试语句 } } public s原创 2021-01-27 22:39:03 · 182 阅读 · 0 评论