每天一个小题目,你废了吗?

简介: 每天一个小题目,你废了吗?

周一,这种基础知识我们都应该知道!

public static void main(String[] args) {
    //1
    byte a = 127;
    byte b = 127;
    b += a;
    System.out.println(b);

    //2
    byte c = (byte)130;
    System.out.println(c);
}

问: 第一个程序有问题吗?没问题的话输出什么? 第二个程序有问题吗?没问题的话输出什么?
答:
正确结果是:-2 和 -126
这个题目要去知道计算机怎么存数据的了。说高大上点“原码、反码和补码”。说简单点,你把它想成一个圆,走到头重新走。byte的范围是-128~127,也就是当byte(127)+byte(1)时会变成byte(-128)这样会不会好理解。要真正理解的话,建议去看原码、反码和补码。

周二,配置文件的锅

application.yml

server:
  port: 10001
  
  
application.properties

server.port=10002

问: 如果你的程序里既配置了application-dev.yml又配置了application.properties。正如上面,程序起来的端口是多少?
答:
正常的情况是先加载yml,接下来加载properties文件。如果相同的配置存在于两个文件中。最后会使用properties中的配置。最后读取的优先集最高。两个配置文件中的端口号不一样会读取properties中的端口号。

周三,我以为我懂了。。。打脸打的也太快了吧

public static void main(String[] args) {

    Integer a1 = 128;
    Integer a2 = 128;
    Integer a3 = 256;
    Integer a4 = a1 + a2;

    System.out.println(a1 == a2);
    System.out.println(a4 == a3);
    System.out.println(a1 + a2 == a3);
}

问: 写出上面程序运行结果
答:
第一个false,超出了Integer的缓存范围(-128—127);第二个false,Integer在堆里创建了两个对象;第三个true,Integer在坐运算时会自动拆箱,所以a1+a2变成int类型的256,Integer在与int类型做比较时也会拆箱,所以a3也是int类型的256,两个基本数据类型用==比较,比较的是值,所以为true。

周四,每日一题,我的异步代码有问题?

主类

@EnableAsync
@SpringBootApplication
public class GzhApplication {
    public static void main(String[] args) {
        SpringApplication.run(GzhApplication.class, args);
    }
}

测试类

@SpringBootTest
class GzhApplicationTests {
    
    @Test
    void test() throws Exception {
        test1();
        test2();
        Thread.sleep(3000);
    }

    @Async
    public void test1() throws Exception {
        Thread.sleep(1000);
        System.out.print("你");
    }

    @Async
    public void test2() {
        System.out.print("吃了吗");
    }
}

问: 上面程序输出什么?为什么会这么输出?如果不知道@Async,在下面回复1,小编会告诉你。
答:
@Async是异步方法,只要在方法上面加上这个注解。就类似于new Thread
@Async要注意一下三点

  • 1.@SpringBootApplication启动类当中没有添加@EnableAsync注解。
  • 2.异步方法使用注解@Async的返回值只能为void或者Future。
  • 3.@Async注解的实现是基于Spring的AOP,而AOP的实现是基于动态代理模式实现的。不能在同一个类里使用。

周五,如果我没有被Spring包养,那怎我么才能吃它的用它的?

Test1

@Component
public class Test1 {
    
    public void test1() {
        System.out.println("test1");
    }
}

Test2

@Component
public class Test2 {

    @Autowired
    private Test1 test1;

    public void test2() {
        System.out.println("test2");
        test1.test1();
    }
}

Test3

public class Test {

    public void test() {
        //TODO
        test2.test2();
    }
}

问: 你是否遇到过一个类无法被Spring管理,但是你要用到Spring管理的Bean,你该如何操作,请补全代码,调用Test2的test2()方法。
答:
有两种,第一种是一位读者的

ApplicationContext context = SpringApplication.run(GzhApplication.class);
Test2 test2 = context.getBean(Test2.class);
test2.test2();

第二种是创建一个类实现ApplicationContextAware
然后在调用getBean获取实例具体代码:
https://gzh-zy.oss-cn-hangzhou.aliyuncs.com/javacode/SpringBeanUtils.java

周六,周六休息一下,看看你能转过来吗?

7加3在什么情况下等于8

问: 7加3在什么情况下等于8?
答:
中秋遇上国庆

相关文章
|
3月前
|
Web App开发 自然语言处理
一盏茶的功夫带你掌握烦人的 this 指向问题( 一 )
一盏茶的功夫带你掌握烦人的 this 指向问题( 一 )
|
3月前
|
Web App开发 自然语言处理
一盏茶的功夫带你掌握烦人的 this 指向问题( 二 )
一盏茶的功夫带你掌握烦人的 this 指向问题( 二 )
|
5月前
|
Shell Linux 虚拟化
minos 0 前(废)言(话)
从今天开始开启一个新的系列,讲述虚拟化的那些事儿。时隔上次发文又隔了好几个月了,主要是平时工作比较忙,没太多时间精力维护博客之类的。
46 6
|
Go
腥风血雨中,这招救了我的代码!
腥风血雨中,这招救了我的代码!
57 0
|
前端开发 数据库
贼无聊的文章
贼无聊的文章
42 0
|
机器学习/深度学习 人工智能 Java
|
JavaScript 小程序 Java
当年那个手搓CPU的老哥回来了!
当年那个手搓CPU的老哥回来了!
|
存储
妈,旧电脑连加法都算错了,我要换新的
妈,旧电脑连加法都算错了,我要换新的
|
安全 Java 编译器
学妹不懂Java泛型,非让我写一篇给她看看(有图为证)
笔者有个学妹就遇到了相同的境遇,学弟被泛型搞得头晕目眩,搞不懂泛型是个啥玩意。天天用的泛型也不知道啥玩意(她可能都不知道她有没有用泛型)。立图为证!当然,笔者深度还欠缺,如果错误还请指正!
140 0
学妹不懂Java泛型,非让我写一篇给她看看(有图为证)
|
Java
老爷子这代码,看跪了! (上)
老爷子这代码,看跪了! (上)
147 0
老爷子这代码,看跪了! (上)