java刷题知识点

news2024/11/23 7:52:53

文章目录

  • 牛客网
    • volatile
    • 字符串数组和字符数组
    • 管道
    • 解决hash冲突
    • Java的体系结构包含
    • 下面有关servlet的层级结构和常用的类,说法正确的有?
    • 关于ThreadLocal类 以下说法正确的是
    • off-heap是指那种内存
    • 集合和map的的继承实现关系
    • 抽象类和接口的区别
    • 节点流与处理流
    • 语句:char foo='中',是否正确?
    • 代码解释
    • &计算
    • 有关线程的哪些叙述是对的()
    • 以下哪几种方式可用来实现线程间通知和唤醒:( )
    • SpringMVC 五大核心组件
    • 下列关于Spring AOP的实现方式的说法中,正确的是
    • 下面赋值语句中正确的是
    • default与protect的区别
    • 静态内部类
    • ++赋值给变量
    • 对于JVM内存配置参数:
    • concuttentHashmap
    • 关于ASCII码和ANSI码
    • 当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用
    • CMS垃圾回收器在那些阶段是没用用户线程参与的

牛客网

volatile

原理:volatile 关键字用于修饰变量,保证线程对该变量的读写操作都直接在主存中进行,而不会使用线程的本地缓存。这样可以避免线程之间的可见性问题

作用:主要用于保证变量的可见性,即一个线程对该变量的修改对其他线程是可见的。

使用场景:适用于以下场景:

当多个线程访问共享变量并且其中有一个线程修改了该变量时。
变量不涉及复合操作,即单一的读/写操作
用于控制开关变量,例如在一个线程中将一个标志位设置为 true,其他线程在循环中检查该标志位,以判断是否继续执行

字符串数组和字符数组

这两个不等价

创建一个包含50个元素的二维字符数组,每个元素是一个字符数组
char[][] a = new char[50][]; 

每个元素都初始化为一个包含10个字符的字符数组,
相当于创建了50个字符串数组(这里不是等价的,只是相当于)
for (int i = 0; i < 50; i++) {
    a[i] = new char[10];  
}

管道

对于管道,有下面这几种类型:

①普通管道(PIPE):通常有两种限制,一是单工,即只能单向传输;二是血缘,即常用于父子进程间(或有血缘关系的进程间)。

②流管道(s_pipe):去除了上述的第一种限制,实现了双向传输。

③命名管道(name_pipe):去除了上述的第二种限制,实现了无血缘关系的不同进程间通信

显然,要求是对于不同的服务器之间的通信,是要要求全双工形式的,而管道只能是半双工

解决hash冲突

threadlocalmap使用开放定址法解决haah冲突,
hashmap使用链地址法解决hash冲突

Java的体系结构包含

  1. Java编程语言
  2. Java类文件格式
  3. Java API
  4. JVM

下面有关servlet的层级结构和常用的类,说法正确的有?

  1. GenericServlet类:抽象类,定义一个通用的、独立于底层协议的Servlet。
  2. 大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现
  3. ServletConfig接口定义了在Servlet初始化的过程中由Servlet容器传递给Servlet得配置信息对象
  4. HttpServletRequest接口扩展ServletRequest接口,为HTTP Servlet提供HTTP请求信息
    在这里插入图片描述

关于ThreadLocal类 以下说法正确的是

  1. ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
  2. ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏
  3. JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。
  4. 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。 所以,在Java中编写线程局部变量的代码相对来说要笨拙一些,因此造成线程局部变量没有在Java开发者中得到很好的普及。
    ThreadLocal的接口方法

off-heap是指那种内存

off-heap叫做堆外内存、,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。序列化和反序列化将会影响部分性能(所以可以考虑使用FST-serialization)使用堆外内存能够降低GC导致的暂停。堆外内存不受垃圾收集器管理,也不属于老年代,新生代。

集合和map的的继承实现关系

在这里插入图片描述

抽象类和接口的区别

在这里插入图片描述

节点流与处理流

节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。

我的理解:节点流就是传入的有file与一个文件向连的流,而处理流就是对节点流再封装。

语句:char foo=‘中’,是否正确?

中文字符所占的字节数取决于字符的编码方式
一般情况下,
采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节
采用GB2312或GBK编码方式时,一个中文字符占2个字节
采用UTF-8编码方式时,一个中文字符会占3个字节
byte和C++中的char类型是一样的,8位,1个字节,-128-127
但是,char类型,是16位,2个字节, ‘\u0000’-‘\uFFFF’。
因为java内部都是用unicode的,所以支持中文变量名的
综上,java中采用GB2312或GBK编码方式时,一个中文字符占2个字节,而char是2个字节,所以是对的

代码解释

public class Tester{
public static void main(String[] args){
   Integer var1=new Integer(1);
   Integer var2=var1;
   doSomething(var2);
   System.out.print(var1.intValue());
   System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
    integer=new Integer(2);
    }
}

在这里插入图片描述

&计算

&运算符:两个数都转为二进制,然后从两个数的最高位进行与运算,两个都为真(1),结果才为真(1),否则为假(0)

13:01101
17:10001
结果:00001,既为1

有关线程的哪些叙述是对的()

使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
当一个线程因为抢先机制而停止运行,它可能被放在可运行队列的前面。
一个线程可能因为不同的原因停止并进入就绪状态

以下哪几种方式可用来实现线程间通知和唤醒:( )

Object.wait/notify/notifyAll
Condition.await/signal/signalAll

常用的线程通信方式有两种,分别是利用Monitor实现线程通信、利用Condition实现线程通信。线程同步是线程通信的前提,所以究竟采用哪种方式实现通信,取决于线程同步的方式。

如果是采用synchronized关键字进行同步,则需要依赖Monitor(同步监视器)实现线程通信,Monitor就是锁对象。在synchronized同步模式下,锁对象可以是任意的类型,所以通信方法自然就被定义在Object类中了,这些方法包括:wait()、notify()、notifyAll()。

JDK 1.5新增了Lock接口及其实现类,提供了更为灵活的同步方式。如果是采用Lock对象进行同步,则需要依赖Condition实现线程通信Condition对象是由Lock对象创建出来的,它依赖于Lock对象有await()、signal()、signalAll()

SpringMVC 五大核心组件

  1. DispatcherServlet  请求入口
  2. HandlerMapping   请求派发,负责请求和控制器建立一一对应的关系
  3. Controller      处理器
  4. ModelAndView    封装模型信息和视图信息
  5. ViewResolver    视图处理器,定位页面

下列关于Spring AOP的实现方式的说法中,正确的是

  1. JDK动态代理,是Java提供的动态代理技术,可以在运行时创建接口的代理实例。
  2. CGLib动态代理,采用底层的字节码技术,在运行时创建子类代理的实例。

下面赋值语句中正确的是

java中整型默认的是int,浮点默认的是double.
double d=5.3e12; 正确
float f=11.1;
int i=0.0;
Double oD=3; int 转为 封装类型Double,是无法编译的

default与protect的区别

default和protected的区别是:
前者只要是外部包,就不允许访问。
后者只要是子类就允许访问,即使子类位于外部包。
总结:default拒绝一切包外访问;protected接受包外的子类访问

静态内部类

在这里插入图片描述

++赋值给变量

count = count++ 原理是 temp = count; count = count+1 ; count = temp; 因此count始终是0 这仅限于java 与c是不一样的

对于JVM内存配置参数:

-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
,其最小内存值和Survivor区总大小分别是。

  1. -Xmx:最大堆大小
  2. -Xms:初始堆大小
  3. -Xmn:年轻代大小
  4. -XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值 年轻代5120m,
  5. Eden:Survivor=3,Survivor区大小=1024m(Survivor区有两个,即将年轻代分为5份,每个Survivor区占一份),总大小为2048m。 -Xms初始堆大小即最小内存值为10240m

concuttentHashmap

JDK1.8 的 ConcurrentHashMap 采用CAS+Synchronized保证线程安全。
JDK1.7 及以前采**用segment的分段锁机制实现线程安全,**其中segment继承自ReentrantLock,因此采用Lock锁来保证线程安全。

Arrays.asList() 返回 java.util.Arrays.ArrayList 对象,这里的 ArrayList 是 Arrays 私有的内部类
SimpleDateFormat是线程不安全的

关于ASCII码和ANSI码

标准ASCII只使用7个bit
在简体中文的Windows系统中,ANSI就是GB2312
ASCII码是ANSI码的子集

当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用

CountDownLatch属于让一组线程阻塞直到线程执行到某一处之后放开,执行后面的代码,而CyclicBarrier属于最开始就是阻塞的,直到最后一个线程到达屏障时,才会放开执行后面代码

CMS垃圾回收器在那些阶段是没用用户线程参与的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Solidity 小白教程:21. 调用其他合约

Solidity 小白教程&#xff1a;21. 调用其他合约 调用已部署合约 开发者写智能合约来调用其他合约&#xff0c;这让以太坊网络上的程序可以复用&#xff0c;从而建立繁荣的生态。很多web3项目依赖于调用其他合约&#xff0c;比如收益农场&#xff08;yield farming&#xff0…

SAP FI 中的重要报告

目录 总账科目表 GL总账清单 GL总账余额 总账科目总计和余额 AR客户主数据列表 AR 客户余额 AR客户订单项 AR客户未清项目 AR客户付款记录 AR供应商主数据 AR供应商余额 AR供应商订单额 AR供应商未清项目 总账科目表 在 SAP 命令字段中输入交易代码 S_ALR_870123…

数据分享|R语言生态学种群空间点格局分析:聚类泊松点过程对植物、蚂蚁巢穴分布数据可视化...

全文链接 :https://tecdat.cn/?p33676 点模式分析&#xff08;点格局分析&#xff09;是一组用于分析空间点数据的技术。在生态学中&#xff0c;这种类型的分析可能在客户的几个情境下出现&#xff0c;但对数据生成方式做出了特定的假设&#xff0c;因此让我们首先看看哪些生态…

中秋国庆假期——模板推荐

要说最近能让人开心的事情是什么?大概就是下周将迎来8天假&#xff0c;小编帮大家数了数还有11天&#xff0c;就要放中秋国庆的假期了。作为一个资深打工人&#xff0c;本周的日常即将变成&#xff1a;上班想放假、下班想放假、想放假… 但是宝子们要注意&#xff0c;大家在盼…

JDK8升级JDK11最全实践干货来了 | 京东云技术团队

1、前言 截至目前&#xff08;2023年&#xff09;&#xff0c;Java8发布至今已有9年&#xff0c;2018年9月25日&#xff0c;Oracle发布了Java11&#xff0c;这是Java8之后的首个LTS版本。那么从JDK8到JDK11&#xff0c;到底带来了哪些特性呢&#xff1f;值得我们升级吗&#x…

js中哪些地方会用到window?

前言 Window 对象是JavaScript中的顶层对象&#xff0c;它代表了浏览器中打开的窗口或者标签页。浏览器中打开的每一个窗口/标签页都会有一个对应的 Window 对象。在浏览器中&#xff0c;全局作用域的 this 就是指向 Window 对象。 正文 在 JavaScript 中&#xff0c;window 对…

《Python趣味工具》——自制emoji3

今日目标 在上次&#xff0c;我们绘制了静态的emoji图。并且总结了turtle中的常用函数。 本次我们将尝试制作一个动态的emoji&#xff0c;让你的表情包动起来&#xff01; 文章目录 一、动画原理&#xff1a;二、制作动画&#xff1a;1. 修改eyes_black()函数&#xff1a;2. 绘…

构建可维护的大规模应用:框架架构的最佳实践

文章目录 框架架构的重要性最佳实践1. 模块化设计2. 遵循SOLID原则3. 使用设计模式4. 异常处理5. 代码注释和文档6. 测试 Spring Boot 和 Django&#xff1a;关键框架示例Spring Boot&#xff08;Java&#xff09;模块化设计&#xff1a;SOLID原则&#xff1a;设计模式&#xf…

分类散点图 stripplot() 加辅助线axhline() 多图合一

分类散点图 stripplot 加辅助线axhline 多图合一 效果图代码 画图没有什么可说的&#xff0c;直接上图 效果图 代码 # 绘制图&#xff0c; 查看是否数值在阈值上 plt.figure(figsize(30, 18)) n 0 for header, value_list in info_dict.items():ref_value_list ref_info_dic…

three.js——通过顶点和顶点索引创建集合体

通过顶点和顶点索引创建集合体 效果图1、创建顶点数据2、创建顶点属性3、创建材质4、创建网格5、改变网格的位置并添加到场景中6、通过顶点索引创建几何图形 效果图 1、创建顶点数据 // 创建顶点数据 每三个一个顶点 逆时针为正面 const vertices new Float32Array([ -1.0, -…

uTool快捷指令

send("************"); quickcommand.sleep(200); keyTap("enter");

关于微信小程序rich-text中图片宽度超出范围解决办法

问题描述&#xff1a;写一个富文本展示页面时发现一个问题&#xff0c;就是图片宽度超出范围&#xff0c;本能反应是给图片设置一个最大宽度&#xff0c;这里发现不可行。然后又使用正则追加样式还是不行。 // 使用正则提取html里面的图片设置图片最大宽度为100% res[1].data[0…

netty-HashedWheelTimer源码解析

一、案例分析 public void testExecutionOnTaskExecutor() throws InterruptedException {int timeout 10;final CountDownLatch latch new CountDownLatch(1);final CountDownLatch timeoutLatch new CountDownLatch(1);Executor executor new Executor() {Overridepublic…

用纯html写个个人简历!模版分享啦!!!

用纯html写个个人简历&#xff01;首先得先找个模板&#xff01; 一个优秀模板所应该具有的素质&#xff1f; 简单&#xff1f; 仅仅一个html页面&#xff0c;完全没有乱七八糟&#xff0c;保证学的明明白白。 漂亮&#xff1f; 该有的内容一个不少&#xff01; 个人照片&a…

零基础Linux_6(开发工具_下)函数库链接+Makefile+实现进度条+Git

目录 1. 函数库&#xff08;链接&#xff09; 1.1 链接 1.2 动态库与静态库 2. makefile 2.1 项目构建 2.2 Makefile的概念 2.3 Makefile的编写 2.4 .PHONY定义伪目标 ACM 时间 3.实现进度条&#xff08;缓冲区&#xff09; 3.1 缓冲区的概念 3.2 实现一个简易 &q…

全网最详细的OSPF原理总结,看这篇就够了!

大家好&#xff0c;我的网工朋友。 OSPF是一种基于链路状态的路由协议&#xff0c;也是专为 IP 开发的路由协议&#xff0c;直接运行在 IP 层上面。它从设计上保证了无路由环路。除此之外&#xff0c;IS-IS也是很常见的链路状态协议。 为什么会出现OSPF&#xff1f; 作为目前…

欧拉操作系统在线安装mysql8数据库并用navicat premium远程连接

网上太多安装教程&#xff0c;但是没有一个教程能够一站式解决安装问题&#xff0c;而我不一样&#xff0c;我写的每一个博客&#xff0c;都是我自己试验过很多次&#xff0c;能够确保一站式解决&#xff0c;才会发上去&#xff0c;希望能够帮助到大家 第一步&#xff1a;升级…

Linux工具(一)

前言&#xff1a;Linux是一个开源的操作系统&#xff0c;它拥有庞大而活跃的开发社区&#xff0c;为用户提供了丰富多样的工具和应用程序。这些工具不仅适用于系统管理员和开发人员&#xff0c;也适用于普通用户&#xff0c;可以帮助他们完成各种任务&#xff0c;从简单的文件管…

爬虫 — Scrapy 框架安装问题

整理几个关于安装 Scrapy 框架时会遇到的问题及解决方法。 1、 pip install typing-extensions4.3.0 -i https://pypi.douban.com/simple 2、 pip install pyOpenSSL22.0 -i https://pypi.douban.com/simple 3、 pip install cryptography36.0.2 -i https://pypi.douban.com/s…

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(四)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境Scikit-learnt 模块实现1. 数据预处理2. 客流预测3. 百度地图API调用4. GUI界面设计5. 路径规划6. 智能推荐 系统测试1. 训练准确率2. 测试效果3. 程序应用 相关其它博客工程源代码下载其它资料下载 …