JAVA线程操作常见面试题 包括不使用内部类对多个线程加减1

class ManyThreads2 {
private int j = 0;
public synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "inc" + j); }
public synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "dec" + j);
}}
public class MyTest extends Thread {
private ManyThreads2 many = new ManyThreads2();
public void run()
{ many.inc();
many.dec();
many.inc();
many.dec();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyTest myTest = new MyTest();
myTest.start(); }
}

分别10次打印 输出A B C

public class MyTest extends Thread {
char cha;
private int id;
int num=0;
static int count=0;
public MyTest(int id, char cha)
{ this.id=id;
this.cha=cha;
}

public synchronized void run()
{ while(num<10){
if(count%3==id){
System.out.println(id);
count++;
num++;
}
} }

public static void main(String[] args) {
// TODO Auto-generated method stub
new MyTest(1,‘A‘).start();
new MyTest(2,‘B‘).start();
new MyTest(3,‘C‘).start(); }
}

时间: 2024-10-08 14:08:28

JAVA线程操作常见面试题 包括不使用内部类对多个线程加减1的相关文章

Java 并发基础常见面试题总结

Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的.系统运行一个程序即是一个进程从创建,运行到消亡的过程. 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程. 如下图所示,在 windows 中通过查看任务管理器的方式,我们就可以清楚看到 window 当前运行的进程(.exe 文件的运行). 1.2

Java后台开发常见面试题

八种基本数据类型的大小,以及他们的封装类 整数型: byte 1个字节 -128~127 封装类:Byte short 2个字节 -32768~32767 Short Int 4个字节 -2147483648~2147483647 Integer long 8个字节 -2的63方~2的63次方-1 Long 浮点型: float 4个字节 单精度 Float Double 8个字节 双精度 Double 布尔类型: boolean 4个字节 true或false Boolean 字符类型: ch

2019年Java后端工程师常见面试题和感想

来新公司有5个月了,从第二个月开始就参与公司后端工程师的面试工作了,包括校招在内,面试超过100个(包括40个校招的终面)应聘者了,应聘者中有超过10年的技术经理,有6年以上的高级开发,有3到5年的中级开发,有刚毕业的初级开发,当然还有未毕业的硕士生本科生,有入职公司的,也有外包公司来参与公司项目的,总之,各种水平层次的都有,每个人的素质也参差不齐,今天就分两个部分讲一讲,一个是作为技术面试官,我比较喜欢问的问题,二是面试后的一些感想,希望对大家有帮助,同时也是要鞭策自己. 一,常见的面试题 这

Java软件开发常见面试题(一)

1.如何理解垃圾回收? 垃圾回收是Java语言的一大特性,方便了编程,是以消耗性能为代价的:在Java虚拟机(JVM)中,有一个垃圾回收器,它的作用就是查找和回收没用的对象,以便让JVM更有效的使用内存:尽可能保证可用内存的使用效率,让可用内存得到高效的管理,程序员可以影响垃圾回收的执行,但是不能控制. 垃圾回收器的运行时间程序员是无法决定的,由JVM决定,运行时也是间接执行的,虽然可以通过System.gc( )来强制回收垃圾,但是在该命令执行后无法保证JVM会立即响应执行,下达命令后,会在短

java程序员常见面试题

一.基础简答题 1.      super()与this()的区别? super() 调用父类的无参构造方法,this()调用本身类无参构造方法. 2.      作用域public,protected,private,以及不写时的区别? public公共修饰的变量,在其他类都可以访问到 protected 保护 同一个包子类访问 private 私有 只有这个类访问 不写 package 同一个包访问 3.      在JAVA中,如何跳出当前的多重嵌套循环? break:continue跳出

全网阅读过20k的Java集合框架常见面试题总结!

本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.欢迎 Star!). 文末有我的公众号,公众号里有我最新整理的Java学习资料,免费分享. 这么好的文章,一定好先赞后看!!!建议养成这个好习惯!!爱你们!?? 剖析面试最常见问题之Java集合框架 当了会标题党,这是第一次,后面还有很多次!不过这文章全网阅读肯定是超过 20 k 的,而且经过了很多同行的优化,

Java集合框架常见面试题

剖析面试最常见问题之Java集合框架 说说List,Set,Map三者的区别? Arraylist 与 LinkedList 区别? 补充内容:RandomAccess接口 补充内容:双向链表和双向循环链表 ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢? 说一说 ArrayList 的扩容机制吧 HashMap 和 Hashtable 的区别 HashMap 和 HashSet区别 HashSet如何检查重复 HashMap的底层实现 JDK1.8

Java中的常见面试题

1.sleep()和wait()的区别: 两者都可以控制线性进程,阻塞进程.区别是: -----|sleep():释放CPU,不释放资源(锁).可以通过指定时间来使它自动醒来,时间不到只能调用iterreput()来强行打断: -----|wait():释放CPU,释放资源(锁).必须在有锁的前提下才可以使用,也就是同步代码块.同步方法,使用时:锁.wait();

Java中面向对象常见面试题

一.成员变量与局部变量的区别1.在类中位置不同:成员变量:在类中方法外定义.局部变量:在方法声明上或在方法定义中.2.在内存中位置不同:成员变量:堆内存.局部变量:栈内存.3.生存周期不同:成员变量:随着类的加载而加载,随着类的消失而消失.局部变量:随着方法调用而存在,随着方法调用完毕而消失.4.初始化值不同:成员变量:由系统默认初始化.对于成员变量,可以不给初始化值,由系统给,然后显示初始化.局部变量:局部变量在使用之前必须初始化,否则无法使用.二.有一个学生类Student,里面有一些属性,