Java
文章平均质量分 76
猪杂汤饭
以为“听到就是知道,知道就是掌握”,从而造成一种短时间内智力快速上升、知识量爆棚的幻觉。
展开
-
java中Integer.parseInt(String)与Integer.valueOf(String)区别
接口描述:valueOf() 返回一个Integer对象持有指定的原始值parseInt() 此方法用于获取某个字符串的原始数据类型说白了,Integer.valueOf(String)是将String转化为Integer对象Integer.parseInt(String)是将String转化为int直接上代码:package helloproj原创 2016-03-07 21:48:56 · 10435 阅读 · 0 评论 -
ThreadLocal知识点解析
1. 作用(具体作用)为每个线程都维护一个* 线程局部变量* ;(目的)每个线程都可以修改自己内部的变量本,而不影响其他线程的变量。(重要区分:optional)属于线程安全范畴,但是不是为了解决线程同步问题:多个线程对同一个资源的并发访问。2. 每个线程的局部变量是存储在哪里的? 类似问题: ThreadLocal是如何每个线程维护局部变量的?==每...原创 2018-03-03 19:05:58 · 431 阅读 · 0 评论 -
JVM方法调用与方法区
0. 方法区0.1 内容加载的时间节点0.1.1 类信息0.1.2 静态变量0.1.3 常量0.1.4 代码0.1.5 虚方法表0.2 方法区会发生OOM吗?1. 解析调用2. 分派调用2.1 静态分派2.2 动态分派2.3 单分派与多分派Reference0. 方法区0.1 内容加载的时间节点0.1.1 类信息=...原创 2018-03-30 22:23:19 · 1131 阅读 · 0 评论 -
ConcurrentHashMap源码解析(jdk1.8)
ConcurrentHashMap 基于JDK1.8ConcurrentHashMap1. 原理解析1.1. 重要成员变量1.2. 实例初始化1.3. put操作1.3.1 put过程描述1.3.2 hash算法1.3.3 定位索引1.3.4 获取table对应的索引元素f1.4. table 扩容1.4.1 addCount1.4.2 treeify...原创 2018-03-27 16:30:07 · 40330 阅读 · 21 评论 -
Java线程池实现原理与源码解析(jdk1.8)
为什么需要线程池? 线程池能够对线程进行统一分配,调优和监控: - 降低资源消耗(线程无限制地创建,然后使用完毕后销毁) - 提高响应速度(无须创建线程) - 提高线程的可管理性Java是如何实现和管理线程池的? 从JDK 5开始,把工作单元与执行机制分离开来,工作单元包括Runnable和Callable,而执行机制有Executor框架提供。 newScheduled...原创 2018-04-03 10:09:49 · 33516 阅读 · 20 评论 -
SpringBoot 2.0 学习计划
SpringBoot 2.0 学习计划学习计划相关链接: https://github.com/YuanKQ/SpringBootTutorial , 学习计划的每一步都有对应的commit. 在查找配置文件相关文档时,务必要保证SpringBoot的版本号要匹配, // 重要版本信息Spring Boot 2.0.3fastJson 1.2.17redis 4.0 ...原创 2018-07-01 20:34:29 · 1486 阅读 · 0 评论 -
傻傻分不清:Spring IoC注入,自动装配与循环依赖
什么是IoCIoC注入方式优缺点比较循环依赖解决办法1.改用setter注入方式(推荐)2. @Lazy注解3. 使用ApplicationContextAware, InitializingBean什么是IoC在创建新的Bean时,IoC容器会自动注入新Bean的所依赖的其他Bean,而无须自己手动创建。 IoC注入方式构造器注入 ...原创 2018-09-04 19:47:42 · 7481 阅读 · 2 评论 -
实践出真知:理解Spring Bean生命周期
实例生命周期Spring Aware接口Spring PostProcessor一些建议实例public class MyBean implements BeanNameAware, BeanFactoryAware, ApplicationContextAware, BeanClassLoaderAware, InitializingBean...原创 2018-09-08 21:16:31 · 3087 阅读 · 2 评论 -
深入浅出解析HashMap源码
转载自:https://huanglei.rocks/coding/194.html (该个人博客十分geek) 基于 OpenJDK1.81 综述1.1 内部类和字段1.1.1 Node1.1.2 TreeNode1.1.3 table:Node[]1.1.4 modCount:int1.2 底层数据结构2 插入2.1 流程综述2.2 hash()...转载 2018-09-05 21:40:25 · 742 阅读 · 1 评论 -
Thread.join()的真正含义
首先, Thread.join() 并没有将线程合并起来~ 任何疑惑都先从Java Doc开始, stackoverflow上有个极好的例子: 1. After the main thread creates and starts the t1 and t2 threads. There are 3 threads running in parallel: main, t1, t2原创 2017-12-29 18:53:13 · 15896 阅读 · 6 评论 -
ReentrantReadWriteLock 读写锁获取与释放源码解析
ReentrantReadWriteLock 读写锁构造函数与ReentrantLock相类似, 其自定义同步器Sync分为公平锁FairSync与非公平锁NonfairSync的两种.默认为NonfairSyncpublic ReentrantReadWriteLock() { this(false); }public ReentrantReadWriteLock(bool原创 2017-12-27 11:53:05 · 1294 阅读 · 0 评论 -
byte[]与ByteBuffer相互转化
NFD在传送大量数据的时候,比如我要传输大文件,或者各类文件的时候,只能使用Blob,但是当接收方接收数据的时候,Blob只能转为ByteBuffer,如何转化为byte[]呢?在查看API文档的时候,发现有个array()的函数,但是被坑惨了!!!根本读不出来好嘛!!!在stackoverflow上找到问题:If hasArray() reports false then,原创 2016-04-11 21:41:58 · 35000 阅读 · 0 评论 -
Java静态与同步
Head First Java(第2版)P526程序:/*代码示例一*/public class TestThread { public static void main(String args[]){ ThreadOne t1 = new ThreadOne(); ThreadTwo t2 = new ThreadTwo(); Thread原创 2016-07-29 17:50:38 · 619 阅读 · 0 评论 -
Java中的异常处理
先看看在Head First Java(第二版)第351页习题:class MyEx extends Exception {}public class ExTestDrive { public static void main(String[] args) { String test = args[0]; try { System.ou原创 2016-07-20 16:52:12 · 1437 阅读 · 0 评论 -
Java 泛型
首先,肘子假设各位读者朋友已经了解了泛型的基本概念了。同样以Head First Java的习题开头(P576练习) 下面哪些语句可以通过编译么?//Dog是Animal的子类//[1]ArrayList<Dog> dogs1 = new ArrayList<Animal>();//[2]ArrayList<Animal> animals1 = new ArrayList<Dog>();原创 2016-08-04 20:28:49 · 964 阅读 · 0 评论 -
eclipse中怎样运行带命令行参数的java程序
代码:package helloproject;public class helloworld { public static void main(String[] args) { for(int i=0; i<args.length; i++){ System.out.println("args[" + i + "]: " +原创 2016-03-07 23:04:04 · 4257 阅读 · 0 评论 -
Win10安装eclipse+SDK+ADT
从干燥的北方来到南方,笔记本竟然也会“水土不服”,主板神奇般地坏了,于是借着新笔记本是win10的机会,装了最新版的eclipse,搭建android开发环境。可是,在GFW的保护下,ADT和SDK的下载也费了我不少功夫,所以特地备忘一下。操作系统:win10 64bit1.下载eclipse-inst-win64.exe先运行该程序,它会提示你应该先装哪一原创 2016-02-16 02:05:52 · 30686 阅读 · 3 评论 -
Import Java Projects from other IDE into IntelliJ IDEA
需求将一个在Mac OSX NetBeans的Java Application Project导入到win10 IntelliJ IDEA,进行二次开发。问题IntelliJ IDEA无法识别出整个工程,如下图 强行运行,需要Edit Configuration,发现无法发现main class: 原因IntelliJ无法识别出整个工程,甚至无法识别出Java文件,那么,就是定位问题。分析检原创 2017-03-01 21:41:29 · 1122 阅读 · 0 评论 -
ReentrantLock加锁与解锁源码解析
ReentrantLock公平锁与非公平锁的lock()和unlock()过程解析.ReentrantLock.lock() public void lock() { this.sync.lock(); }sync.lock()取决于ReentrantLock获取锁的机制: 公平性FairSync or 非公平性UnfairSync(Default)非公平性(实现重进入的过程原创 2017-12-26 19:55:33 · 628 阅读 · 0 评论 -
基于@Aspect的Spring AOP实现竟然没有运行:Spring“最直觉”的调试思路
本文通过一个问题“基于@Aspect的Spring AOP实现竟然没有运行”的调试全过程,给出了Spring最基础最“直觉”最“特别”的调试思路:考虑对象是否被框架加载/实例化了?比较了解Spring AOP的同学可以直接看第二部分“2. 调试思路总结”。阅读本文大概需要10min。原创 2019-04-28 21:31:10 · 1878 阅读 · 0 评论