三一重工8.14面试

1.问你一个小的问题,如何用程序实现一秒执行一次方法呢?
一开始没有回答出来,直接说了for循环,面试官说,那我要是执行到明年呢?还是用for循环吗?
public class MultiThread {
    public static void main(String[] args) throws InterruptedException {
        while(true){
            A();
            Thread.sleep(1000);
        }
    }
    public static void A(){
        System.out.println("这是方法A");
    }
}
2. synchronized与Lock的区别
只回答出来了Lock是一个接口,而Synchronized是Java的关键字,其他都没有回答上来,看来八股还是没有看完。
  1. Lock是一个接口,而Synchronized是java的一个关键字。
  2. Synchronized在发生异常时会自动释放占有的锁,因此不会出现死锁;而lock发生异常时,不会主动释放占有的锁,必须手动来释放锁,可能引起死锁的发生。
  3. Synchronized可以给类、对象、代码块加锁,而Lock只能给代码加锁。
  4. 通过Lock可以知道有没有成功获取锁,而Synchronized却无法办到。
3.Synchaonized如何实现加锁?给对象加锁,给该类加锁,或者是.class文件加锁,举例
给普通方法加锁——等价与给该对象加锁
// 普通方法加Synchronized
class Test{
    public synchronized void test(){
        //代码块
    }
}
给该对象加锁:
class Test{
    public void test(){
        synchronized (this){
            
        }
    }
给静态方法加锁——相当于给该类加锁——也相当于给该类的class文件加锁
class Test{
    public static synchronized void test(){
        //代码块
    }
}
给该类的class文件加锁
class Test{
    public  void test(){
        synchronized(Test.class){
            
        }
        //代码块
    }
}
4.多线程下,访问,出现数据不一致如何解决?
一开始回答的是加互斥锁,后来说了使用了volatile关键字,保证可见性
5.你知道泛型,那已知一个泛型,那如何返回一个该泛型的列表呢?
(面试看了简历,我写了泛型,结果G)
自定义泛型方法
import java.util.ArrayList;
import java.util.List;
// 自定义泛型
public class generic_paradigm {
    public static void main(String[] args) {
        Car car = new Car();
        List<Double> list = car.B(0.2);
        System.out.println(list);
    }
}
class Car{
    // 普通方法
    public <T> List<T> B(T t){
        List<T> list = new ArrayList<>();
        for(int i = 0;i < 10;i++){
            list.add(t);
        }
        return list;
    }
}
自定义泛型类:
//调用:
public class generic_paradigm {
    public static void main(String[] args) {
        Tiger tiger = new Tiger("小王",1,2.0,"haha");
        System.out.println(tiger);
    }
}
class Tiger<T,R,M>{     String name;     T t;     R r;     M m;     // 构造器使用泛型     public Tiger(String str,T t,R r,M m){         this.name = str;         this.m = m;         this.r =r;         this.t = t;     }     @Override     public String toString() {         return "Tiger{" +                 "name='" + name + '\'' +                 ", t=" + t +                 ", r=" + r +                 ", m=" + m +                 '}';     } }




#三一重工#
全部评论
怎么感觉我今天面的问的全是一些无关紧要的问题呢,然后你知道大概什么时间可以有反馈吗
点赞 回复 分享
发布于 2022-08-14 20:17
请问是哪个事业部啊 重装前置吗
点赞 回复 分享
发布于 2022-08-16 10:13

相关推荐

不愿透露姓名的神秘牛友
01-19 15:35
公务员 锡山 11k 本科211
offer求求哩:就是你天天乱花我们纳税人的钱是吧😆😆
点赞 评论 收藏
分享
2024-12-17 19:24
门头沟学院 Java
黑皮白袜臭脚体育生:看你后备隐藏能源多不多,最坏的情况就是每个星期的三天课程都不在周末,那么每个星期公司那边请一天半假,半天假请上午,上午正常上课,早点溜去请病假或者中午去请病假,然后坐高铁回公司,记得提前请学校那边实训课下午的病假,就说肚子痛,然后下午就公司上班,第二个实训周同样,但病假理由是牙齿痛,像肚子痛和牙齿痛这种校医院不方便查,会同意你出去检查的,很多时候都不需要你的检查报告,这里的问题就是最坏情况时距离过远的话可能要坐飞机才能赶上,然后请假的话不一定请了就有回应,可能要等老师,然后距离不远不近的情况到公司了也是迟到,得想个说辞掩盖一下,顺便晚上多加点班补下时间,特殊情况特殊处理,正常不建议加班常态化,这样每个星期可以多凑出来半天,老师面子也有了公司那边也不至于无法交差,就是有点费存粮,如果哪个星期的三天课有一天或两天在周末的话那就更好应对了。实习还是建议去,学校的课懂的都懂
点赞 评论 收藏
分享
01-07 15:50
四川大学 Java
明远湖摸鱼:同年级的同学,,简历可以大一点,这个有点太密集了,实习技术可以量化的尽量量化
点赞 评论 收藏
分享
评论
3
29
分享

创作者周榜

更多
牛客网
牛客企业服务