- 浏览: 723403 次
- 性别:
- 来自: 宇宙
最新评论
-
天使建站:
http://www.aijquery.cn/Html/bia ...
选择控件:select ,radio,checkbox之用jquery获取选中值的小结 -
wahahachuang8:
GoEasy实时Web推送,支持后台推送和前台推送两种:后台推 ...
【反ajax】webSocket实现实时推送功能 -
white_crucifix:
Str5=Str1+Str2+Str3+Str4,这条语句执行 ...
面试系列(二):JVM工作原理 -
yanxing2012:
写的不对,http://blog.csdn.net/lian_ ...
List集合的复制方式小结 -
u012879379:
嗯,一针见血的指出了问题,谢谢博主
JedisDataException: ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in thi
文章列表
-----------------------20180504更新-------------------------------------
今天用idea的maven compile时,发现虽然idea的设置已经将Java compile设置成1.8(我本机的jdk版本),且maven项目的project settings也是1.8,但一直是出现如下情况:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on pro ...
个人手工笔记,因为怕丢掉,所以以照片的形式传上来保存在网络里。。
1、线程有关:
2、Spring Cloud分布式:
3、HashMap原理:
4、JVM内存模型:
5、锁: 6、MySQL索引:
7、内存溢出:
多线程:如何确定所有任务都执行完成了?
- 博客分类:
- Java EE
--------------------20180502更新-----------------------------
今天学习到了一个比较强大的类:ExecutorCompletionService,它是将 Executor和BlockQueue结合的jdk类,其实现的主要目的是:提交任务线程,每一个线程任务直线完成后,将返回值放在阻塞队列中,然后可以通过阻塞队列的take()方法返回 对应线程的执行结果!!
所以还可以这样写:
ExecutorCompletionService<String> completionService = new ExecutorCom ...
资料参考:一般是网络查询,但需要注意在MySQL官网上下载的版本,google的时候最好精确到版本,因为不同版本的安装方式可能有所不同,而这些“不同”就会造成一些“坑”!本文的版本是最新版本:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz。故在网络上google的时候查找5.7.21版本的安装资料,不要随便一篇文章就拿来参考!
先搭建一个虚拟机再玩:https://www.linuxidc.com/Linux/2017-04/143102.htm(虚拟机镜像最好使用Desktop版会比较少点坑。。)
安装过程大同小异,只不过Lin ...
今天是2018.03.22,已经很久没有更新博客了。。这段时间一直挺忙的,也收获很多。最近一个excel导出的任务让我搞了好久,想想踩过的坑,就想上来小结一番。
------------------------------------------------------分割线------------------------ ...
其实今年面试发现,对于底层的东西还是得多看,之前虽然整理过一些Java面试的东西,但还是不够,下面就回顾下比较需要掌握的知识点。
1、JVM的内存结构
收藏一篇比较好的文章:
JVM内存模型及垃圾回收算法 :http://blog.csdn.net/kingofworld/article/details/17718587
2、HashMap原理
1)HashMap: http://wiki.jikexueyuan.com/project/java-collection/hashmap.html
put的时候用equals方法比较key是否已经存在(延伸:equals和==区 ...
简介:Swagger是一种Rest API的 简单但强大的表示方式,标准的,语言无关,这种 表示方式不但人可读,而且机器可读。 可以作为Rest API的交互式文档,也可以作为Rest API的形式化的接口描述,生成客户端和服务端的代码。
下面结合比较常见的场景,大概说下在Springboot下如何使用swagger来管理接口,以便前后端开发人员能够很好的做接口的对接,同时也利于接口的后续维护开发。
1. maven里引入swagger所需jar包:
<dependencies>
<dependency>
...
Lintcode刷题地址:http://www.lintcode.com/zh-cn/problem/#_=_
一些大厂面试时喜欢考查的,对于锻炼自己的逻辑思维也大有裨益~
发现对链表的考察较多。。
0.经典的二分查找法(前提为有序序列)
/**
* 非递归二分查找
* ...
终于到最后一个比较常问的点了。基本上问你对于Spring的理解。把它的核心概念:IOC和AOP答好,以及Spring的工作原理,Spring里用到的一些设计模式答好就差不多了……
===================================20170727更新========================= ...
差点把多线程给忘了。。。。 多线程基本上去每个公司面试都会问到……
1、谈谈你对多线程的理解
线程:表示程序的执行流程,是CPU调度执行的基本单位
多线程:指的是一个程序(一个进程)运行时产生了不止一个线程,使用多线程的好处,在于并行的执行多任务,彼此独立,可以提高执行效率。
2、实现多线程的方式
在java中实现多线程有多种途径:继承Thread类,实现Runnable接口,实现Callable接口,线程池负责创建。
一个线程对象只能启动一个线程,无论你调用多少遍start()方法,结果只有一个线程。
Thread.start()方法(native)启动线 ...
前言:数据库和前端也是Java面试比较常见的两部分,这里就写在一篇文章里了。。本篇文章可能并不详尽,但也基本涵盖了面试中可能会问到的点。。
第一部分:数据库部分
1.数据三大范式
第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。
第二范式(2NF):是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
要求数据库表中的每个实 ...
基础也是Java面试里最基本的考查~ 下面就以我遇到的较为常见的点来整理,比较零散,仅供参考。
1、switch……case
要注意case之间要用break来分隔,否则将会一直执行下去直到有break的地方:
public static void switchTest(int i) {
switch(i) {
case 1:
System.out.println("============1");
break;
case 2:
System.out.println("============2&q ...
Java的反射机制也会是面试中较常问到的点。建议可以从基本定义,语法和实际应用3方面作答。
1、基本定义
反射机制是在运行状态中,
对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2、基本语法
1)获取Class对象
一般有3种形式:
Class<?> class1 = Class.forName("全限定类名");
Class<?> class2 = new TestRef ...
【阅读模式答题】
答题:对于JVM的理解,在我看来有两个重要部分:
第一是Java代码编译和执行的整个过程:
开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。
Java代码编译和执行的整个过程包含了以下三个重要的机制:
1)Java源码编译机制:Java代码编译是由Java源码编译器来完成,也就是Java代码到JVM字节码(.class文件)的过程
2)类加载机制:JVM的类加载是通过ClassLoader及其子类来完成 ...
开始这个系列是因为想总结一下面试中比较常见的考点。。不喜勿喷~~~~~~
1、静态代码块、构造代码块、普通代码块和构造函数的执行顺序
静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
构造代码块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句 ...