},“A”).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Thread(()->{
phone2.call();
},“B”).start();
}
}
class Phone2{
public synchronized void sendSms(){
try {
TimeUnit.SECONDS.sleep(4);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“发短信”);
}
public synchronized void call(){
System.out.println(“打电话”);
}
public void hello(){
System.out.println(“hello”);
}
}
package test01;
import java.util.concurrent.TimeUnit;
/*
-
5.静态方法 先 发短信还是打电话 //1.发短信 2.打电话
-
6.两个对象 先打印 发短信还是打电话 //1. 发短信 2.打电话
*/
public class Test3 {
public static void main(String[] args) {
Phone3 phone1 = new Phone3();
Phone3 phone2 = new Phone3();
new Thread(()->{
phone1.sendSms();
},“A”).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Thread(()->{
phone2.call();
},“B”).start();
}
}
//phone 唯一的一个Class对象
class Phone3{
//synchronized 锁的对象是方法的调用者
//static 静态方法
//类一加载就有了 ! 锁的是Class
public static synchronized void sendSms(){
try {
TimeUnit.SECONDS.sleep(4);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“发短信”);
}
public static synchronized void call(){
System.out.println(“打电话”);
}
}
package test01;
import java.util.concurrent.TimeUnit;
/*
-
7.一个静态同步方法 一个普通同步方法 一个对象 先发短信 打电话 ? //1.打电话 2.发短信
-
8.一个静态同步方法 一个普通同步方法 两个对象 先发短信 打电话 ? //1.打电话 2.发短信
*/
public class Test4 {
public static void main(String[] args) {
Phone4 phone1 = new Phone4();
Phone4 phone2 = new Phone4();
new Thread(()->{
phone1.sendSms();
},“A”).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Thread(()->{
phone2.call();
},“B”).start();
}
}
//phone 唯一的一个Class对象
class Phone4{
//静态同步方法 锁的是Class类模板
public static synchronized void sendSms(){
try {
TimeUnit.SECONDS.sleep(4);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“发短信”);
}
//普通同步方法 锁的是调用者
public synchronized void call(){
System.out.println(“打电话”);
}
}
总结
new this 具体的一个手机
static class 唯一的一个模板
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里

ert/d03a705143646f4f3f6ea879d59b2788.png)(title-必看视频!获取2024年最新Java开发全套学习资料 备注Java)]
索引+底层+分布式+优化等,已拿offer](https://upload-images.jianshu.io/upload_images/24616006-619e14df79286be9?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
[外链图片转存中…(img-f9UTq5RA-1716384059511)]