Java基础
Running-Waiting
用最好的年华来担保说出来都可能被嘲笑的理想
展开
-
关于finally代码块的抛出异常问题
之前面试被问道关于异常捕获的finally代码块作用,可能我们想到的会是在finally中进行一些资源关闭的操作。常见的操作便是IO流这样的close操作:public static void throwException(){ File file = null; FileInputStream fis = null; try{ ...原创 2019-11-30 16:59:24 · 7109 阅读 · 0 评论 -
Java基本数据(short和int的转换问题)
面试遇到short和int的转换问题,当时有些疑惑,在这里总结一下!第一种情况public static void main(String[] args) { short a = 1; a += 1; //不用强转 a = (short) (a + 1); //需要强转, } &nb...原创 2019-11-18 18:58:44 · 18672 阅读 · 2 评论 -
位、字节、字符的区别
位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,1B(byte,字节)= 8bit(位)字符:是指计算机中使用的字母、数字、字和符号ASCIIS码: 1个英文字母(不分大小写)= 1个字节的空间 1个中文汉字 = 2个字节...转载 2019-11-06 20:01:49 · 209 阅读 · 0 评论 -
线程池之ThreadPoolExecutor使用
ThreadPoolExecutor提供了四个构造方法:我们以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSize, // 1 int maximumPoolSize, // 2 lo...转载 2019-10-30 10:00:52 · 258 阅读 · 0 评论 -
可达性算法中不可达的对象是否一定会死亡(不一定)
我们应该都知道Java虚拟机在进行垃圾回收操作的时候,会先进行垃圾判定,会使用引用计数法和可达性算法来进行对象是否回收判断;可达性算法的基本思路是通过”GC Roots“的对象作为起始点,从这些点开始往下搜索,搜索所走过的路径为引用链,当一个对象到“GC Roots”没有任何引用链相连,证明该对象是不可达的,即不可用,是可回收对象;在Java中可以做GC Roots的对象包含以下几种:1、...原创 2019-10-17 16:17:22 · 960 阅读 · 0 评论 -
一条SQL语句执行得很慢的原因有哪些
一、分类讨论1. 大多数情况是正常的,只是偶尔会出现很慢的情况。2. 在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。二、偶尔出现很慢的情况一条 SQL 大多数情况正常,偶尔才能出现很慢的情况,针对这种情况,我觉得这条SQL语句的书写本身是没什么问题的,而是其他原因导致的,那会是什么原因呢?数据库在刷新脏页(flush)我也无奈啊当我们要往数据库插入一条数据、或者要更新一...转载 2019-09-25 17:57:29 · 189 阅读 · 0 评论 -
ThreadLocal理解
在多线程中ThreadLocal是逃不了的一个重要话题!(前两天在一个公众号上看到一片关于ThreadLocal的文章写的很好,在这里总结记录一下)思考:1、用在什么地方?2、有哪些细节?3、最佳实践是什么?答:1、用在什么地方?ThreadLocal的两类用途:保存线程上下文信息,在任意需要的地方可以获取;由于ThreadLocal的特性,同一个线程在某个地方设置,...原创 2019-09-24 22:53:00 · 304 阅读 · 0 评论 -
ClassLoader.loadClass()与Class.forName()的区别
ClassLoader.loadClass()与Class.forName()大家都知道是反射用来构造类的方法,但是他们的用法还是有一定区别的。在讲区别之前,我觉得很有不要把类的加载过程在此整理一下。在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作...转载 2019-07-10 17:49:49 · 167 阅读 · 0 评论 -
为什么HashMap使用红黑树而不使用AVL树
在Jdk1.8版本后,Java对HashMap做了改进,在链表长度大于8的时候,将后面的数据存在红黑树中,以加快检索速度。那么很多人就有疑问为什么是使用红黑树而不是AVL树,AVL树是完全平衡二叉树阿?最主要的一点是:在CurrentHashMap中是加锁了的,实际上是读写锁,如果写冲突就会等待,如果插入时间过长必然等待时间更长,而红黑树相对AVL树他的插入更快!问题:为什么不使用AVL...转载 2019-07-10 16:04:08 · 31393 阅读 · 2 评论 -
JRE和JDK理解
前述在起初接触到Java时,没能将JRE和JDK区分,只是知道两者缺一不可,必须同时安装(JDK11以后,没有单独的JRE了,JDK和JRE进行了整合统一),而现在可以明白它们各自的功能了。相关分析JRE(Java Runtime Environment)指的是java的运行时环境,它由 (JVM + 核心类库) 构成,是java应用程序执行的必需环境,可以理解为非开发人员运行必备,无需...原创 2019-05-28 10:33:48 · 256 阅读 · 0 评论 -
wait-notifyAll实现生产者与消费者模型
前述生产者与消费者问题是线程并发问题中一个重要的内容,java有多种实现方式,而利用线程wait和notifyAll可以简单实现生产与消费并发的思想。关键在于一个公共缓冲区用于存储当前生产的产品,生产和消费对同一个仓库(缓冲区)进行操作,这里使用LinkedList来模拟一个公共缓冲区,每次对缓冲区的操作都是从队尾进行添加删除。代码区package produce_consumer;...原创 2019-05-27 08:08:11 · 154 阅读 · 0 评论 -
Get和POST提交的区别
前言最近在复习J2EE的一些基础知识,在看到web客户端提交方式区别,发现之前忽视的一部分重点在这里总结记录一下。常规区别(大部分人知道的区别)对于web开发来说,get和post提交方式估计都写到吐了,当问起两者的区别时,我想大部分人和我的想法是一致的。get提交时是将提交信息放在URL路径之后,以name=value的形式用&连接起来post提交是将提交信息放在了requ...原创 2019-05-08 06:09:21 · 358 阅读 · 0 评论 -
Referenced file contains errors (xml文件第一行小红叉错误)
之前项目动辄就会出现这样的错误,看到有用的解决方法在这样收藏一下!我是通过第二种方法解决的原创 2019-05-14 18:01:58 · 609 阅读 · 0 评论 -
转发和重定向的区别
转发(Forward)和重定向(Redirect)区别转发是服务器行为,而重定向是客户端(浏览器)行为转发(Forward)转发是通过(Forward)是通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法实现。RequestDispatcher可以通过HttpServ...原创 2019-05-09 05:37:00 · 238 阅读 · 0 评论 -
Java BeanUtils组件使用(Date类型转换)
JavaBean定义了一组规则JavaBean就是遵循此规则的平常的Java对象 ,可以理解为一种规范,它有效降低了代码的重复性,提高复用性。它具有以下特性:1、易于维护、使用、编写。2、可实现代码的重用性。3、可移植性强,但仅限于Java工作平台。4、便于传输,不限于本地还是网络。5、 可以以其他部件的模式进行工作。在这里重点看一下它的日期类型转换1、注册日期类型转换器,自定...原创 2019-03-24 16:25:33 · 1218 阅读 · 2 评论