- 博客(21)
- 收藏
- 关注
原创 Java【jvm面试题】
程序计数器是一块较小的内存空间,它可以看作是:保存当前线程所正在执行的字节码指令的地址(行号)由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,一个处理器都只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。称之为“线程私有”的内存。程序计数器内存区域是虚拟机中唯一没有规定OutOfMemoryError情况的区域。总结:也可以把它叫做线程计数器。
2023-07-18 14:41:08
779
1
原创 Java【并发编程面试题】
线程:线程是计算机中的一种基础执行单元,用于在CPU上执行程序。它是进程的一个组成部分,每个进程可以有一个或多个线程,它们共享该进程的资源。简单来说,一个线程可以看作是进程中的一个独立的执行流程,具有自己的程序计数器、寄存器、堆栈、状态等信息。线程可以独立运行,也可以与同一进程中的其他线程共同协作完成任务。多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。
2023-06-01 15:10:57
1286
原创 Java【集合面试题】
哈希算法也称为散列算法,是将任意长度的消息压缩到某一固定长度的消息摘要(digest)的过程。哈希函数将一段任意长度的消息转换成一段固定长度的输出,该输出通常称为哈希值、哈希码或摘要。哈希函数可以将消息作为输入,并生成固定长度的哈希值,这个哈希值可以用于数据加密、数据完整性验证、数字签名等各种数据处理领域。哈希函数具有以下特点:哈希函数通常需要满足输入域比输出域大得多,这样可以避免不同的输入产生相同的哈希值(即哈希冲突)。
2023-05-22 23:45:29
877
原创 在Java中如何确保在多线程情况下,所有线程都完成再继续执行任务?
在多线程环境下,需要保证线程安全,避免出现线程竞争和线程之间的互相干扰。在以上示例代码中,当每个 SQL 查询任务执行完毕后都将 CountDownLatch 计数器减 1,当计数器减为 0 时,主线程的 await() 方法返回,程序继续执行后面的逻辑,汇总所有 SQL 查询结果并进行处理。在主线程中,调用 CountDownLatch 的 await() 方法在所有 SQL 查询任务执行完成前阻塞线程,直到计数器减为 0 时,所有任务都已经执行完成可以继续往下执行,此时可以对查询结果进行汇总处理。
2023-04-26 08:21:49
5851
原创 js如何实现一个对象数组a的元素添加到对象b数组,且只添加b数组不存在的元素?
方法,该方法是 ES6 中新增的方法。该方法在旧版本的浏览器可能不被支持,此时需要使用其他的方法,比如。属性可以用于唯一性的判断。如果需要使用其他的属性进行判断,则需要相应地修改判断条件。需要注意的是,在判断元素是否存在时我们使用了。在以上代码中,我们定义了两个对象数组。中是否已经存在,若不存在则将当前元素添加到数组。另外,在上述的实现中,我们假定对象的。最后,我们打印出了修改后的数组。中的每一个元素,在遍历过程中使用。中包含了需要添加到数组。方法查找当前元素在数组。
2023-04-25 09:43:19
660
原创 java如何将对象转换为map?如何将map转换为对象?
手动转换的方式是最基本的一种转换方式,通过获取对象的属性值,创建 Map 对象并把属性存入 Map 对象中,或者从 Map 对象中获取值,创建对象并把属性值赋值给对象。Gson 是 Google 提供的一个 Java 库,可以将 Java 对象转换成 Json 字符串,也可以将 Json 字符串转换成 Java 对象。Jackson 是另一个流行的 JSON 库,可以将 Java 对象转换成 Json 字符串,也可以将 Json 字符串转换成 Java 对象。
2023-04-24 21:44:29
5978
原创 十、什么是类加载器?有哪些类加载器?
用户自己定义的类加载器,通过继承java.lang.类的方式实现。原文链接:https://blog.csdn.net/weixin_30409927/article/details/107131064。
2023-04-22 12:45:41
189
原创 九、什么是java注解?有哪些常见注解?
当我们理解了内置注解, 元注解和获取注解的反射接口后,我们便可以开始自定义注解了。创建自定义注解和创建一个接口相似,但是注解的interface关键字需要以@符号开头,我们可以为注解声明方法。自定义注解格式:// 元注解public @interface 注解名称{// 属性列表1.创建自定义注解/*** 自定义注解例子*/@Inherited2.使用自定义注解/*** 使用自定义注解*/3.测试自定义注解/**
2023-04-22 12:39:15
183
原创 八、什么是静态方法和静态变量?有什么特点?
在Java中,static表示“静态的”,它也是一种修饰符,可以修饰属性、常量、方法、代码块和内部类。
2023-04-21 22:36:51
1048
原创 七、什么是JavaIO,有哪些分类?
IO:Input/Output即输入&输出,也称之为流(河流,水流),指的是数据从一个地点到另一个地点过程;对于计算机来说文件的拷贝过程,文件的编写保存,显示功能都是使用到IO;将数据的传输过程看做一个输入输出。现实角度考虑可以将耳朵作为输入流,将嘴巴当做输出流输入输出介质:文件网络键盘(输入)显示器(输出)
2023-04-21 21:53:18
67
原创 五、什么是java反射?如何使用它?有哪些例子?
Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。表 1 反射可访问的常用信息类型访问方法返回值类型说明包路径Package 对象获取该类的存放路径类名称getName()String 对象。
2023-04-20 22:23:38
98
原创 在有多态继承情况下,static静态代码块、代码块、构造方法之间的执行顺序
父类中的静态代码块→子类中的静态代码块→父类非静态代码块→父类构造函数→子类非静态代码块→子类构造函数总之一句话总结:父类早于子类、静态早于非静态、非静态早于构造函数ps:静态代码块只会执行一次,多次调用也只有一次。
2023-04-17 15:28:06
216
原创 三.什么是线程?如何创建线程?
它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。2.就绪(RUNNABLE):调用线程对象的start()方法后,等待被分配给CPU时间片、谁先抢到CPU资源,谁开始执行。3.运行(RUNNING):当就绪的线程被调并获得度CPU资源时,进入运行状态,执行run()方法中的功能。每个线程能共享同一个进程中的内存,线程也有独立的空间(栈、程序计数器)。,是正在运行的程序的实例,一个程序可以包含一个或多个进程。
2023-04-16 20:28:38
120
原创 一.Java中数据类型有哪些?他们有什么区别?
基本数据类型的赋值是简单赋值,如果一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把这个值复制到为新变量分配的位置上,新旧两者毫不相干,改变其中一方另一方不会有任何影响。简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。2.引用类型的赋值是在栈里创建一个新的引用指向相同的堆对象,两者息息相关,改变一个,另一个随之改变。中的对象,在栈内存中存放的是堆内存中具体内容的引用地址,通过这个地址可以快速查找到对象。例如,String类型就是引用类型。
2023-04-16 19:18:48
323
原创 二.java中的封装、继承多态、抽象是什么?有什么作用?
(2)运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。继承的概念:从已知的一个类中派生出一个新的类,叫子类。子类实现了父类所有非私有化的属性和方法,并根据实际需求扩展出新的行为。t方法为属性设值的时候 你可以在set方法里面做个if判断,把值设值在0-80岁,那样他就不能随意赋值了。封装:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。封装分为封装属性,方法,类等等。抽象的概念:通过特定的实例抽取出共同的特征行成概念的过程。
2023-04-16 19:17:55
213
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人