1.面试题:重写和重载的区别 (1)重写(Override):在有继承关系的类中,子类的方法名,参数,返回值和父类一样,但是方法体的内容不同,我们把这种现象称为重写 (给方法上面加上@Override验证该方法是否是方法的重写,不报错说明是方法的重写)  
转载
2023-10-18 21:09:13
78阅读
冒泡排序/**
* 从后往前,不断向前比较,小的向前面浮起来(交换)
* 如果发现一趟排序没有交换,那么flag=false,程序就提前退出了
* 时间复杂度O(n^2)
*/
private static int[] bubbleSort(int[] arr) {
boolean flag = true;
for (int i = 0; i < arr.lengt
转载
2023-09-21 09:35:00
49阅读
问:arraylist:对于两个相同的数字如何删除的?答:题意有点不明确,我这里理解成对arraylist调用remove方法删除某重复的元素item,那么会删除第一个出现的。问:hashmap的结构,以及hashmap的查找复杂度?答:hashmap采用数组+链表/红黑树的结构。查找复杂度在链表情况下为O(n),在红黑树下为O(logn)。问:类的修饰符?答:public,abstr
1. 说一说HashMap的原理?答案:底层通过数组+链表的结构去维护一个Entry,每次put元素时,会调用hashcode()方法确认元素在数组中的下标位置,如果该位置没有元素,直接插入,已经有元素存在,继续调用equals()方法对比2个元素是否相等,相等则新的元素覆盖旧的元素,不相等的话会以这个数组下标为起点,插入到链表的节点中。默认容量是16,负载因子0.75(负载因子就是说容量为16,
转载
2024-01-06 09:01:42
41阅读
前言从各种方面收集整理加一点总结(甚少),方便自己理解,好多出处不是很清楚,如果侵权问题请马上联系我,会立即改正注明出处哒,谢谢前辈们整理的资料,膜拜大神们~并发一、volatile关键字解析
volatile保证可见性,不保证原子性,禁止指令重排序。多线程下指令重排序会导致结果错误: 单线程环境里面,指令重排序最终执行结果和代码顺序执行的结果一致,因为处理器在进行重排序时考虑了指令之间的数据依赖
转载
2023-07-31 16:37:30
45阅读
No.1 初衷日常学习之中,想把见过的典型笔试题、例题整理出来方便温习巩固。特开此篇,主要是为了记录解题的思路和运用的知识,以备后续回看思路清晰。No.2 经典编程题1.对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。方法1:利用HashSet的特性,即不允
转载
2023-12-28 15:09:27
25阅读
14. 排序算法总结 冒泡排序:依次比较相邻元素的排序码,若发现逆序则交换。 可以设置一个变量记录,每轮比较的时候是否有元素交换,若没有则已经有序,没有必要再继续了。(对于原本有序的数组比较好,可由平方阶时间复杂度提升至线性阶)。如果两个元素相等,无需改变他们的位置,因此冒泡排序是稳定的。 快速排序:是对冒泡排序的一种改进。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比
转载
2023-09-23 07:27:01
46阅读
Java中的方法覆盖重写(Overriding)和方法重载(Overloading)是什么意思?Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖重写是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。 Java的四种引用,强弱软虚,用到的场景1. 强引用:如果一个对象具有强引用,它就
转载
2024-05-16 14:33:47
12阅读
Java中的方法覆盖重写(Overriding)和方法重载(Overloading)是什么意思?Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖重写是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。 Java的四种引用,强弱软虚,用到的场景1. 强引用:如果一个对象具有强引用,它就不会被垃
转载
2023-11-23 22:09:48
53阅读
1.简介1.1 IO分类Java IO一般包含两个部分:http://java.io的阻塞型IO和java.nio的非阻塞型IO,即NIO。系统运行的瓶颈一般在于IO操作,一般打开某个IO通道需要大量的时间,同时端口中不一定就有足够的数据,这样read方法就一直等待读取此端口的内容,从而浪费大量的系统资源。使用java的多线程技术在当前进程中创建线程也是要花费一定的时间和系统资源的,因此不一定可取
转载
2023-09-11 08:11:32
337阅读
指令重排序1.指令重排序的概念在JDK中,JAVA语言为了维持顺序内部的顺序化语义,也就是为了保证程序的最终运行结果需要和在单线程严格意义的顺序化环境下执行的结果一致,程序指令的执行顺序有可能和代码的顺序不一致,这个过程就称之为指令的重排序。2.指令重排序的意义指令重排序的意义在于:JVM能根据处理器的特性,充分利用多级缓存,多核等进行适当的指令重排序,使程序在保证业务运行的同时,充分利用CPU的
转载
2023-09-26 17:08:40
0阅读
1、指令重排序何为指令重排序,我们以一个例子来看一下public class Test1 {
int a = 0;
int b = 0;
void set() {
a = 1;
b = 1;
}
void get() {
while(b == 1) {
assert (a =
转载
2023-09-30 09:12:19
179阅读
Netty (年度最新面试题)1.你了解过哪些IO模型?2.什么是Reactor模型?Reactor的3种版本都知道吗?3.了解过粘包拆包吗?为什么会出现粘包拆包?怎么处理粘包拆包?4.UDP协议会有粘包拆包的问题吗?为什么?5.Netty 是什么?6.为什么要用 Netty?7.Netty 的应用场景了解么?8.Netty 的零拷贝了解么?9.Netty 的心跳机制了解么?10.Netty 中有
转载
2023-11-22 23:05:13
246阅读
Java包66. JDK 中常用的包有哪些java.lang:这个是系统的基础类;java.io:这里面是所有输入输出有关的类,比如文件操作等;java.nio:为了完善 io 包中的功能,提高 io 包中性能而写的一个新包;java.net:这里面是与网络有关的类;java.util:这个是系统辅助类,特别是集合类;java.sql:这个是数据库操作的类67. import java和javax
转载
2023-09-20 08:53:20
196阅读
java 中级面试题及答案1.MyBatis中,根据Id查询单个Order对象,动态SQL如何编写?A. SELECT * FROM Order WHERE ID = #{id}; B. SELECT * FROM Order WHERE ID = #{id}; C. SELECT * FROM Order WHERE ID = #{id}; D. SELECT * FROM Order WHER
转载
2023-09-05 08:00:10
503阅读
在执行程序时为了提高性能,编译器和处理器常常会对指令做重排序。重排序分三种类型:编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-Level Parallelism, ILP)来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序。内存系统的重排序。由于处理
转载
2018-08-22 19:26:00
275阅读
Java面试题、java面试题大汇总、java面试题大全带答案、java面试题基础题、java面试题算法、java面试题中级
原创
2021-07-21 11:37:56
2486阅读
点赞
在执行程序时为了提升性能,提升并行度,编译器和处理器经常会对指令作重排序。重排序分三种类型:java编译器优化的重排序。编译器在不改变单线程程序语义的前提下,能够从新安排语句的执行顺序。指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-Level Parallelism, ILP)来将多条指令重叠执行。若是不存在数据依赖性,处理器能够改变语句对应机器指令的执行顺序。内存系
转载
2023-09-25 11:31:47
87阅读
目录定义发生位置数据依赖性指令重排序的优缺点处理器重排序规则内存屏障类型volatile防止指令重排序定义指令重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段,比如当2条指令顺序执行时,如果第一条指令操作的源数据不再寄存器中,则需要到内存中取,此时第2条指令就必须等第一条指令的数据取回并执行了才能执行。处理器对这种情况进行了优化,即如果第二条指令与第一条指令不存在数据依赖
转载
2023-07-16 14:43:13
235阅读
重排序在执行程序时,编译器和处理器会对指令进行重排序,重排序分为:编译器重排序:在不改变代码语义的情况下,优化性能而改变了代码执行顺序;指令并行的重排序:处理器采用并行技术使多条指令重叠执行,在不存在数据依赖的情况下,改变机器指令的执行顺序;内存系统的重排序:使用缓存和读写缓冲区时,加载和存储可能是乱序执行。比如现在有一段代码如下:a = 1; //代码1
b = 1; //代码2编译器和处理为了
转载
2023-06-30 21:35:03
216阅读