• 卷妹带你回顾Java基础(一)每日更新Day4


    卷妹带你回顾Java基础(一)每日更新Day4

    👩‍💻博客主页:京与旧铺的博客主页

    ✨欢迎关注🖱点赞🎀收藏⭐留言✒

    🔮本文由京与旧铺原创,csdn首发!

    😘系列专栏:java学习

    👕参考网站:牛客网

    💻首发时间:🎞2022年8月7日🎠

    🎨你做三四月的事,八九月就会有答案,一起加油吧

    🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

    🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

    💬推荐一款模拟面试、刷题神器👉点击进入网站

    🛒导航小助手🎪

    题干

    请你说说多线程

    解题思路

    得分点 线程和进程的关系、为什么使用多线程 标准回答 线程是操作系统调度的最小单元,它可以让一个进程并发地处理多个任务,也叫轻量级进程。所以,在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈、局部变量,并且能够共享进程内的资源。由于共享资源,处理器便可以在这些线程之间快速切换,从而让使用者感觉这些线程在同时执行。 总的来说,操作系统可以同时执行多个任务,每个任务就是一个进程。进程可以同时执行多个任务,每个任务就是一个线程。一个程序运行之后至少有一个进程,而一个进程可以包含多个线程,但至少要包含一个线程。 使用多线会给开发人员带来显著的好处,而使用多线程的原因主要有以下几点:

    \1. 更多的CPU核心 现代计算机处理器性能的提升方式,已经从追求更高的主频向追求更多的核心发展,所以处理器的核心数量会越来越多,充分地利用处理器的核心则会显著地提高程序的性能。而程序使用多线程技术,就可以将计算逻辑分配到多个处理器核心上,显著减少程序的处理时间,从而随着更多处理器核心的加入而变得更有效率。

    \2. 更快的响应时间 我们经常要针对复杂的业务编写出复杂的代码,如果使用多线程技术,就可以将数据一致性不强的操作派发给其他线程处理(也可以是消息队列),如上传图片、发送邮件、生成订单等。这样响应用户请求的线程就能够尽快地完成处理,大大地缩短了响应时间,从而提升了用户体验。 3. 更好的编程模型 Java为多线程编程提供了良好且一致的编程模型,使开发人员能够更加专注于问题的解决,开发者只需为此问题建立合适的业务模型,而无需绞尽脑汁地考虑如何实现多线程。一旦开发人员建立好了业务模型,稍作修改就可以将其方便地映射到Java提供的多线程编程模型上。

    1.42 static修饰的类能不能被继承?

    参考答案

    static修饰的类可以被继承。

    扩展阅读

    如果使用static来修饰一个内部类,则这个内部类就属于外部类本身,而不属于外部类的某个对象。因此使用static修饰的内部类被称为类内部类,有的地方也称为静态内部类。

    static关键字的作用是把类的成员变成类相关,而不是实例相关,即static修饰的成员属于整个类,而不属于单个对象。外部类的上一级程序单元是包,所以不可使用static修饰;而内部类的上一级程序单元是外部类,使用static修饰可以将内部类变成外部类相关,而不是外部类实例相关。因此static关键字不可修饰外部类,但可修饰内部类。

    静态内部类需满足如下规则:

    1. 静态内部类可以包含静态成员,也可以包含非静态成员;

    2. 静态内部类不能访问外部类的实例成员,只能访问它的静态成员;

    3. 外部类的所有方法、初始化块都能访问其内部定义的静态内部类;

    4. 在外部类的外部,也可以实例化静态内部类,语法如下:

      外部类.内部类 变量名 = new 外部类.内部类构造方法();
      
      • 1
    1.43 static和final有什么区别?

    参考答案

    static关键字可以修饰成员变量、成员方法、初始化块、内部类,被static修饰的成员是类的成员,它属于类、不属于单个对象。以下是static修饰这4种成员时表现出的特征:

    • 类变量:被static修饰的成员变量叫类变量(静态变量)。类变量属于类,它随类的信息存储在方法区,并不随对象存储在堆中,类变量可以通过类名来访问,也可以通过对象名来访问,但建议通过类名访问它。
    • 类方法:被static修饰的成员方法叫类方法(静态方法)。类方法属于类,可以通过类名访问,也可以通过对象名访问,建议通过类名访问它。
    • 静态块:被static修饰的初始化块叫静态初始化块。静态块属于类,它在类加载的时候被隐式调用一次,之后便不会被调用了。
    • 静态内部类:被static修饰的内部类叫静态内部类。静态内部类可以包含静态成员,也可以包含非静态成员。静态内部类不能访问外部类的实例成员,只能访问外部类的静态成员。外部类的所有方法、初始化块都能访问其内部定义的静态内部类。

    final关键字可以修饰类、方法、变量,以下是final修饰这3种目标时表现出的特征:

    • final类:final关键字修饰的类不可以被继承。
    • final方法:final关键字修饰的方法不可以被重写。
    • final变量:final关键字修饰的变量,一旦获得了初始值,就不可以被修改。

    扩展阅读

    变量分为成员变量、局部变量。

    final修饰成员变量:

    • 类变量:可以在声明变量时指定初始值,也可以在静态初始化块中指定初始值;
    • 实例变量:可以在声明变量时指定初始值,也可以在初始化块或构造方法中指定初始值;

    final修饰局部变量:

    • 可以在声明变量时指定初始值,也可以在后面的代码中指定初始值。

    注意:被 final 修饰的任何形式的变量,一旦获得了初始值,就不可以被修改!

    1.48 Java反射在实际项目中有哪些应用场景?

    参考答案

    Java的反射机制在实际项目中应用广泛,常见的应用场景有:

    • 使用JDBC时,如果要创建数据库的连接,则需要先通过反射机制加载数据库的驱动程序;
    • 多数框架都支持注解/XML配置,从配置中解析出来的类是字符串,需要利用反射机制实例化;
    • 面向切面编程(AOP)的实现方案,是在程序运行时创建目标对象的代理类,这必须由反射机制来实现。
    1.49 说一说Java的四种引用方式

    参考答案

    Java对象的四种引用方式分别是强引用、软引用、弱引用、虚引用,具体含义如下:

    • 强引用:这是Java程序中最常见的引用方式,即程序创建一个对象,并把这个对象赋给一个引用变量,程序通过该引用变量来操作实际的对象。当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收。
    • 软引用:当一个对象只有软引用时,它有可能被垃圾回收机制回收。对于只有软引用的对象而言,当系统内存空间足够时,它不会被系统回收,程序也可使用该对象。当系统内存空间不足时,系统可能会回收它。软引用通常用于对内存敏感的程序中。
    • 弱引用:弱引用和软引用很像,但弱引用的引用级别更低。对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统内存是否足够,总会回收该对象所占用的内存。当然,并不是说当一个对象只有弱引用时,它就会立即被回收,正如那些失去引用的对象一样,必须等到系统垃圾回收机制运行时才会被回收。
    • 虚引用:虚引用完全类似于没有引用。虚引用对对象本身没有太大影响,对象甚至感觉不到虚引用的存在。如果一个对象只有一个虚引用时,那么它和没有引用的效果大致相同。虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,虚引用必须和引用队列联合使用。
    2.1 Java中有哪些容器(集合类)?

    参考答案

    Java中的集合类主要由Collection和Map这两个接口派生而出,其中Collection接口又派生出三个子接口,分别是Set、List、Queue。所有的Java集合类,都是Set、List、Queue、Map这四个接口的实现类,这四个接口将集合分成了四大类,其中

    • Set代表无序的,元素不可重复的集合;
    • List代表有序的,元素可以重复的集合;
    • Queue代表先进先出(FIFO)的队列;
    • Map代表具有映射关系(key-value)的集合。

    这些接口拥有众多的实现类,其中最常用的实现类有HashSet、TreeSet、ArrayList、LinkedList、ArrayDeque、HashMap、TreeMap等。

  • 相关阅读:
    29岁才转行软件测试,目前32了,我的一些经历跟感受
    一款.NET Core开源的基于Vue+ElementUI开发的博客系统 - StarBlog
    十年架构五年生活-04第一个工作转折点
    服务器内存总量和内存条有差异是什么问题 103.239.244.X
    Spring+SpringMVC+Jsp实现校园二手交易系统
    JavaScript:生成器函数
    [附源码]java毕业设计教师教学评价系统
    java-php-python-货币博物馆展品管理系统计算机毕业设计
    【词性的选择与所放位置练习题】主语的选择-强调
    喜讯 | 智安零信任安全项目入选信通院“安全守卫者计划”优秀案例
  • 原文地址:https://blog.csdn.net/qq_46272491/article/details/126403651