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

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

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

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?
答:
中秋遇上国庆

相关文章
|
18天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
3月前
|
Web App开发 自然语言处理
一盏茶的功夫带你掌握烦人的 this 指向问题( 一 )
一盏茶的功夫带你掌握烦人的 this 指向问题( 一 )
|
3月前
|
Web App开发 自然语言处理
一盏茶的功夫带你掌握烦人的 this 指向问题( 二 )
一盏茶的功夫带你掌握烦人的 this 指向问题( 二 )
|
Go
腥风血雨中,这招救了我的代码!
腥风血雨中,这招救了我的代码!
55 0
|
C语言
【每日一道智力题】之高楼扔只因蛋
【每日一道智力题】之高楼扔只因蛋
167 0
|
算法
回溯算法——我欲修仙(功法篇)
回溯算法——我欲修仙(功法篇)
102 0
|
算法 搜索推荐 C语言
堆排序——我欲修仙(功法篇)
堆排序——我欲修仙(功法篇)
120 0
堆排序——我欲修仙(功法篇)
|
算法 C语言
二分查找——我欲修仙(功法篇)
二分查找——我欲修仙(功法篇)
85 0
|
Linux Windows
唉,被坑惨了!
32 位系统,用户态的虚拟空间只有 3G,如果创建线程时分配的栈空间是 10M,那么一个进程最多只能创建 300 个左右的线程。 64 位系统,用户态的虚拟空间大到有 128T,理论上不会受虚拟内存大小的限制,而会受系统的参数或性能限制。
唉,被坑惨了!
|
SQL
开胃菜12
开胃菜12
107 0
开胃菜12