![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java——杂货铺
技术分享
挨踢小子
你有着我说不出的美,你是我这辈子最想珍爱的人
展开
-
String"+"拼接底层实现原理
1、说起String拼接,大家会想到几个对比:String:常量,不可变,不适合用来字符串拼接,每次都是新创建的对象,消耗较大。StringBuffer:适合用来作字符串拼接StringBuilder:JDK1.5引入,适合用来作字符串拼接,与StringBuffer区别是他不是线程安全的2、接下来进入正题String”+”拼接底层实现原理String s=null;s=s+"abc"...转载 2020-03-16 20:50:25 · 830 阅读 · 1 评论 -
如何计算Eden区的大小
如何计算Eden区的大小题目已知虚拟机的一些参数设置如下:-Xms:1G;-Xmx:2G;-Xmn:500M;-XX:MaxPermSize:64M;-XX:+UseConcMarkSweepGC;-XX:SurvivorRatio=3;求Eden区域的大小?分析这是网易2016年在线笔试题中的一道选择题。先分析一下里面各个参数的含义:-Xms:1G , 就是说初始...转载 2020-03-16 20:38:44 · 2178 阅读 · 0 评论 -
idea中各种for循环的快捷键
idea中各种for循环的快捷键使用Intellij idea 时,想要快捷生成for循环代码块itar 生成array for代码块for (int i = 0; i < array.length; i++) { = array[i]; }itco 生成Collection迭代 for (Iterator iterator = coll...转载 2020-01-14 21:09:53 · 2216 阅读 · 0 评论 -
Java中常用的四种线程池
在Java中使用线程池,可以用ThreadPoolExecutor的构造函数直接创建出线程池实例,如何使用参见之前的文章Java线程池构造参数详解。不过,在Executors类中,为我们提供了常用线程池的创建方法。接下来我们就来了解常用的四种:newFixedThreadPool首先,看一下这种线程池的创建方法:public static ExecutorService newFixedTh...转载 2020-01-14 20:48:55 · 115 阅读 · 0 评论 -
深入理解String和intern方法
定义字符串:String str=”abc”; 和String str=new String(“abc”); 的区别:String str="abc";String str1=new String("abc");String str2="abc";System.out.println(str);System.out.println(str1);//都输出abc //牵涉到==和eq...转载 2020-01-09 22:12:53 · 196 阅读 · 0 评论 -
【Java】HashMap 和 HashTable 的区别到底是什么?
第一、继承不同第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。public class HashMap<K, V> extends AbstractMap<K, V> implements Cloneable, Serializable {...}public class H...转载 2020-01-09 21:50:52 · 106 阅读 · 0 评论 -
MyBatis传入参数为list、数组、map写法
1.foreach简单介绍:foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每...转载 2020-01-05 21:00:09 · 213 阅读 · 0 评论 -
java泛型通配符 ? extends T 和 ? super T 的区别和用法
关于Java泛型,这里我不想总结它是什么,这个百度一下一大堆解释,各种java的书籍中也有明确的定义,只要稍微看一下就能很快清楚.从泛型的英文名字Generic type也能看出,Generic普通、一般、通用的,是一个概括性的词,那么泛型从名字上也就好理解了,它是一种通用类型,是java中各种类型的概括.?是java泛型中的通配符,它代表java中的某一个类,那么<? extends T...转载 2020-01-05 20:26:53 · 247 阅读 · 1 评论 -
为什么Iterator的remove方法可保证从源集合中安全地删除对象,而在迭代期间不能直接删除集合内元素
在对集合进行操作时,我们会发现,如果我们用迭代器迭代,但是在迭代器过程中如果使用集合对象去删除,添加,清空集合存储的对象时,那么就程序就会报出异常,例如如下代码:public class IteratorTest { public static void main(String[] args) { ArrayList<String>list = new ArrayList<...转载 2020-01-02 20:30:31 · 897 阅读 · 0 评论 -
高并发秒杀功能架构设计
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...转载 2019-10-22 10:21:03 · 370 阅读 · 0 评论 -
JVM生命周期
1、启动:任何class文件的main函数都可认为是jvm示例的起点。2、运行:以main函数为起点,后续的线程都由它启动,包括守护线程和用户线程。main方法启动的线程是用户线程,守护线程是JVM自己使用的线程如GC线程。3、退出&异常退出:用户线程完全退出了,jvm示例结束生命周期。JVM退出可能原因分析1)执行了System.exit()方法。2)程序正常运行结束(程序的运...转载 2019-10-14 17:50:42 · 75 阅读 · 0 评论 -
Spring、SpringMVC、 SpringBoot和SpringCloud概念的
1、SpringSpring 是一个开源框架,起初是为解决企业应用开发的复杂性而创建,但是现在已经不止于企业应用。Spring的核心就是提供一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。2、Spring MVCSpring MVC可以理解为Spring和MVC结合的一种开发架构,Spring的概念可以参阅上面所述。MVC是一种将数据业务、显示逻辑和控制逻辑进行分层的设计模式,...转载 2019-09-10 12:01:23 · 133 阅读 · 0 评论 -
什么是“堆”,"栈","堆栈","队列",它们的区别
如果你学过数据结构,就一定会遇到“堆”,“栈”,“堆栈”,“队列”,而最关键的是这些到底是什么意思?最关键的是即使你去面试,这些都还会问到,所以如果你不懂对你是损失很大的。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意 栈:后进先出(Last-In/First-Out)堆:什么是堆?又该怎么理解呢?①堆通常是一个...转载 2019-09-10 10:24:51 · 181 阅读 · 0 评论 -
string字符串拼接应使用哪种方式比较好
我们所知道的字符串String的拼接有: “+” 、 concat () 方式实现,或者使用StringBuilder、StringBuffer类实现。这几种方式性能的从低到高进行排序。性能排序:“+” < concat () < StringBuffer < StringBuilder 。使用"+"性能是最差的,应该避免使用!!!StringBuilder的性能是最...转载 2019-09-10 10:14:22 · 2658 阅读 · 2 评论 -
【面试】线程和进程的区别
1、首先是定义进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程在执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。2、一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。3、线程是一种轻量级的进程,与进...转载 2019-09-03 09:50:23 · 260 阅读 · 0 评论 -
【面试】GET和POST两种基本请求方法的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”...转载 2019-09-03 09:57:34 · 81 阅读 · 0 评论 -
【面試】Http详细解释
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它...转载 2019-09-03 10:05:14 · 863 阅读 · 0 评论 -
【面试】java中有无goto关键字
今日面试题:1、 java语言中有没有goto关键字?答案: goto是java语言中的保留字,目前还没有在java中使用。相信很多同学被问到这道题目时,都能答上来。但是,但是你想过没有,为什么面试官要问你这个问题?他是要考察你的知识面是否广泛!!!范例: 其实goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能。而在结构化程序语...转载 2019-09-03 10:10:17 · 193 阅读 · 2 评论 -
【面试】线程和进程的区别
1、首先是定义进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。2、一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。3、线程是一种轻量级的进程,与进...转载 2019-09-03 10:17:16 · 221 阅读 · 0 评论 -
GC详解及Minor GC和Full GC触发条件总结
GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC流程 ,对象如何晋升到老年代对象优先在新生代区中分配,若没有足够空间,Minor GC; 大对象(需要大量连续内存空间)直接进入老年态;长期存活的对...转载 2019-09-09 14:43:08 · 205 阅读 · 0 评论 -
【Java面试】String中 + 的实现原理
说起String拼接,大家会想到几个对比:String:常量,不可变,不适合用来字符串拼接,每次都是新创建的对象,消耗较大。StringBuffer:适合用来作字符串拼接StringBuilder:JDK1.5引入,适合用来作字符串拼接,与StringBuffer区别是他不是线程安全的接下来进入正题String”+”拼接底层实现原理曾见过这样一道题:String s=null;s=s...转载 2019-09-10 09:07:41 · 1564 阅读 · 1 评论 -
【java面试】什么是Maven以及Maven的优点
Maven是Java平台下的一款项目构建和依赖管理的自动化管理工具。项目构建:将我们的源代码、配置文件变成可执行的war包或者jar包。依赖管理:项目需要正常运行,必须依赖一些第三方的jar包,对于这些第三方的jar包的管理,可以认为就是依赖的管理。Maven的优点:1、原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下,而借助Maven,可以将jar...转载 2019-09-10 09:22:08 · 723 阅读 · 0 评论 -
【Java面试】谈谈自己对于 Spring IoC 和 AOP 的理解
IOC解析IoC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 IoC 在其他语言中也有应用,并非 Spirng 特有。 IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。将对象之间的相互依赖关系交给 IoC 容器来...转载 2019-09-10 09:37:43 · 17431 阅读 · 0 评论 -
HashMap(常用方法、底层结构、扩容机制)
1.实现原理:*HashMap的底层实现是一个哈希表即数组+链表;*HashMap初始容量大小16,扩容因子为0.75,扩容倍数为2;HashMap本质是一个一定长度的数组,数组中存放的是链表。当向HashMap中put(key,value)时,会首先通过hash算法计算出存放到数组中的位置,比如位置索引为i,将其放入到Entry[i]中,如果这个位置上面已经有元素了,那么就将新加入的元...转载 2019-09-10 10:02:12 · 128 阅读 · 0 评论 -
【面试】 java语言中有没有goto关键字?
今日面试题:1、 Java语言中有没有goto关键字?答案: goto是java语言中的保留字,目前还没有在java中使用。相信很多同学被问到这道题目时,都能答上来,但是,但是你想过没有,为什么面试官要问你这个问题?他是要考察你的知识面是否广泛!!!那么当你遇到这个题目时,你应该这样答:范例: 其实goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移, 构成...转载 2019-09-03 09:42:01 · 236 阅读 · 0 评论