
Java
GeekLeee
这个作者很懒,什么都没留下…
展开
-
Java对象锁和类锁全面解析(多线程synchronized关键字)
https://blog.youkuaiyun.com/u013142781/article/details/51697672转载 2019-12-02 18:11:50 · 359 阅读 · 0 评论 -
JVM运行时数据区(Run-Time Data Areas) - Java内存分配
译文链接Java虚拟机(JVM)定义了在程序执行期间使用的各种运行时数据区域。其中一些JVM数据区域是按线程创建的,而其他JVM数据区域是在JVM启动时创建的,而内存区域是在线程之间共享的。根据使用情况,JVM运行时数据区域可分为六个区域程序计数器(PC)寄存器Java虚拟机(JVM)堆栈本机方法堆栈堆方法区域运行时常量池如上所述,这些记忆区域可分为两类 -每个线程创建 -...转载 2019-05-16 11:27:38 · 298 阅读 · 0 评论 -
echart整体图形大小调整
https://blog.youkuaiyun.com/qq_31229137/article/details/80475231注意:echart的demo页面的图表大小固定,在echart调整这些参数看不到大小变化1、饼状图,直接在series里面,通过改变radius和center的大小值就可以调整大小。2、柱状图和折线图的大小通过调整grid里面的值。...转载 2019-06-14 14:26:53 · 33641 阅读 · 2 评论 -
一 Java内存区域(13)
Java 内存区域详解写在前面 (常见面试题)基本问题拓展问题一 概述二 运行时数据区域2.1 程序计数器2.2 Java 虚拟机栈2.3 本地方法栈2.4 堆2.5 方法区2.5.1 方法区和永久代的关系2.5.2 常用参数2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?2.6 运行时常量池2.7 直接...转载 2019-06-25 09:58:26 · 266 阅读 · 0 评论 -
二 JVM垃圾回收(14)
JVM 垃圾回收写在前面本节常见面试题本文导火索1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定2 对象已经死亡?2.1 引用计数法2.2 可达性分析算法2.3 再谈引用2.4 不可达的对象并非“非死不可”2.5 如何判断一个常量是废...转载 2019-07-03 11:47:26 · 314 阅读 · 0 评论 -
Myeclipse web项目热部署,修改不用重启
1、选中servers下的web项目—》右键,选中Browse deployment location,打开。2、返回上,找到conf文件,打开编辑context.xml文件,在对应位置加上,保存转载 2019-06-27 20:22:14 · 1024 阅读 · 2 评论 -
三 JDK 监控和故障处理工具(15)
JDK 监控和故障处理工具总结JDK 命令行工具jps:查看所有 Java 进程jstat: 监视虚拟机各种运行状态信息jinfo: 实时地查看和调整虚拟机各项参数jmap:生成堆转储快照jhat: 分析 heapdump 文件jstack :生成虚拟机当前时刻的线程快照JDK 可视化分析工具JConsole:Java 监视与管理控制台连接 Jconsole查...转载 2019-07-03 20:34:00 · 398 阅读 · 0 评论 -
四 类文件结构(16)
类文件结构一 概述二 Class 文件结构总结2.1 魔数2.2 Class 文件版本2.3 常量池2.4 访问标志2.5 当前类索引,父类索引与接口索引集合2.6 字段表集合2.7 方法表集合2.8 属性表集合参考类文件结构一 概述在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只...转载 2019-07-03 21:12:34 · 505 阅读 · 0 评论 -
BIO,NIO,AIO 总结(19)
熟练掌握 BIO,NIO,AIO 的基本概念以及一些常见问题是你准备面试的过程中不可或缺的一部分,另外这些知识点也是你学习 Netty 的基础。BIO,NIO,AIO 总结1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO...转载 2019-07-09 14:22:08 · 282 阅读 · 0 评论 -
Java IO 与 NIO系列文章(20)
IO流学习总结一 Java IO,硬骨头也能变软二 java IO体系的学习总结三 Java IO面试题NIO与AIO学习总结一 Java NIO 概览二 Java NIO 之 Buffer(缓冲区)三 Java NIO 之 Channel(通道)四 Java NIO之Selector(选择器)五 Java NIO之拥抱Path和Files六 NIO学习总结以及NI...转载 2019-07-09 16:27:05 · 229 阅读 · 0 评论 -
五 类加载过程(17)
类加载过程加载验证准备解析初始化公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。类加载过程Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分...转载 2019-07-04 10:20:37 · 553 阅读 · 0 评论 -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet。同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listene...转载 2019-06-08 22:18:09 · 336 阅读 · 0 评论 -
AQS 原理以及 AQS 同步组件总结(12)
目录:1 AQS 简单介绍2 AQS 原理2.1 AQS 原理概览2.2 AQS 对资源的共享方式2.3 AQS底层使用了模板方法模式3 Semaphore(信号量)-允许多个线程同时访问4 CountDownLatch (倒计时器)4.1 CountDownLatch 的三种典型用法4.2 CountDownLatch 的使用示例4.3 CountDownLatc...转载 2019-06-14 10:57:32 · 238 阅读 · 0 评论 -
JDK1.7-LinkedList循环链表优化
原文https://juejin.im/post/5bb3026b5188255c393f7cf2https://cloud.tencent.com/developer/article/1336307最近在看jdk1.7的时候,发现LinkedList 和1.6中的变化。首先,简单介绍一下LinkedList:LinkedList是List接口的双向链表实现。由于是链表结构,所以长度没有...转载 2019-05-16 13:55:34 · 754 阅读 · 0 评论 -
Java transient关键字使用小记
Java transient关键字使用小记转载 2019-05-16 15:08:56 · 190 阅读 · 0 评论 -
ArrayList 源码学习(4)
ArrayList简介ArrayList核心源码ArrayList源码分析System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心扩容技术内部类ArrayList经典DemoArrayList简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元...转载 2019-05-17 09:30:57 · 164 阅读 · 0 评论 -
HashMap(JDK1.8)源码学习(6)
HashMap 简介底层数据结构分析JDK1.8之前JDK1.8之后HashMap源码分析构造方法put方法get方法resize方法HashMap常用方法测试感谢 changfubai 对本文的改进做出的贡献!HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 Has...转载 2019-06-05 10:47:21 · 194 阅读 · 0 评论 -
Java 并发基础(7)
Java 并发基础常见面试题总结1. 什么是线程和进程?1.1. 何为进程?1.2. 何为线程?2. 请简要描述线程与进程的关系,区别及优缺点?2.1. 图解进程和线程的关系2.2. 程序计数器为什么是私有的?2.3. 虚拟机栈和本地方法栈为什么是私有的?2.4. 一句话简单了解堆和方法区3. 说说并发与并行的区别?4. 为什么要使用多线程呢?5. 使用多线...转载 2019-06-05 13:35:15 · 382 阅读 · 0 评论 -
Java并发进阶(8)
Java 并发进阶常见面试题总结1. synchronized 关键字1.1. 说一说自己对于 synchronized 关键字的了解1.2. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗1.3. 讲一下 synchronized 关键字的底层原理1.4. 说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优...转载 2019-06-05 13:36:40 · 391 阅读 · 0 评论 -
并发容器总结(9)
一 JDK 提供的并发容器总结二 ConcurrentHashMap三 CopyOnWriteArrayList3.1 CopyOnWriteArrayList 简介3.2 CopyOnWriteArrayList 是如何做到的?3.3 CopyOnWriteArrayList 读取和写入源码简单分析3.3.1 CopyOnWriteArrayList 读取操作的实现3.3....转载 2019-06-05 23:17:04 · 165 阅读 · 0 评论 -
乐观锁与悲观锁(10)
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它...转载 2019-06-13 10:56:12 · 222 阅读 · 0 评论 -
JUC 中的 Atomic 原子类总结(11)
个人觉得这一节掌握基本的使用即可!本节思维导图:1 Atomic 原子类介绍Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类说简单点就是具有原子/原子操作特征的类。并发包 java...转载 2019-06-13 14:14:16 · 238 阅读 · 0 评论 -
LinkedList 源码学习(5)
简介内部结构分析LinkedList源码分析构造方法添加(add)方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除(remove/pop)方法LinkedList类常用方法测试:简介LinkedList是一个实现了List接口和Deque接口的双端链表。LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了...转载 2019-05-29 18:06:49 · 165 阅读 · 0 评论 -
六 类加载器(18)
回顾一下类加载过程类加载器总结双亲委派模型双亲委派模型介绍双亲委派模型实现源码分析双亲委派模型的好处如果我们不想要双亲委派模型怎么办?自定义类加载器推荐回顾一下类加载过程类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。一个非数组类的加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,这一步我...转载 2019-07-04 10:42:27 · 240 阅读 · 0 评论 -
Java 8 新特性总结(21)
随着 Java 8 的普及度越来越高,很多人都提到面试中关于Java 8 也是非常常问的知识点。应各位要求和需要,我打算对这部分知识做一个总结。本来准备自己总结的,后面看到Github 上有一个相关的仓库,地址:https://github.com/winterbe/java8-tutorial。这个仓库是英文的,我对其进行了翻译并添加和修改了部分内容,下面是正文了。Java 8 Tuto...转载 2019-07-09 22:50:17 · 203 阅读 · 0 评论 -
数据结构知识学习(29)
下面只是简单地总结,给了一些参考文章,后面会对这部分内容进行重构。Queue什么是队列队列的种类Java 集合框架中的队列 Queue推荐文章Set什么是 Set补充:有序集合与无序集合说明HashSet 和 TreeSet 底层数据结构推荐文章List什么是ListList的常见实现类ArrayList 和 LinkedList 源码学习推荐阅读...转载 2019-07-19 17:41:06 · 215 阅读 · 0 评论 -
MySQL高性能优化规范建议(38)
作者: 听风,原文地址: https://www.cnblogs.com/huchong/p/10219318.html。数据库命令规范数据库基本设计规范1. 所有表必须使用 Innodb 存储引擎2. 数据库和表的字符集统一使用 UTF83. 所有表和字段都需要添加注释4. 尽量控制单表数据量的大小,建议控制在 500 万以内。5. 谨慎使用 MySQL 分区表6.尽量...转载 2019-07-29 18:49:24 · 238 阅读 · 0 评论 -
事务隔离级别(图文详解)(40)
事务隔离级别(图文详解)什么是事务?事物的特性(ACID)并发事务带来的问题事务隔离级别实际情况演示脏读(读未提交)避免脏读(读已提交)不可重复读可重复读防止幻读(可重复读)参考事务隔离级别(图文详解)什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉...转载 2019-07-29 18:50:34 · 278 阅读 · 0 评论 -
一千行MySQL学习笔记(37)
非常不错的总结,强烈建议保存下来,需要的时候看一看。基本操作数据库操作表的操作数据操作字符集编码数据类型(列类型)列属性(列约束)建表规范SELECTUNION子查询连接查询(join)TRUNCATE备份与还原视图事务(transaction)锁表触发器SQL编程存储过程用户和权限管理表维护杂项基本操作/* Windows服务 */--...转载 2019-07-30 09:33:30 · 222 阅读 · 0 评论 -
Redis 总结(42)
redis 简介为什么要用 redis/为什么要用缓存为什么要用 redis 而不用 map/guava 做缓存?redis 和 memcached 的区别redis 常见数据结构以及使用场景分析1.String2.Hash3.List4.Set5.Sorted Setredis 设置过期时间redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存2...转载 2019-07-30 14:01:06 · 298 阅读 · 0 评论 -
Redlock分布式锁(43)
Redis 官方网站刊登的 Distributed locks with Redis 部分内容的总结和翻译。什么是 RedLockRedis 官方站这篇文章提出了一种权威的基于 Redis 实现分布式锁的方式名叫 Redlock,此种方式比原先的单节点的方法更安全。它可以保证以下特性:安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不...转载 2019-07-30 15:49:08 · 245 阅读 · 0 评论 -
Spring学习(46)
Spring相关教程/资料官网相关Spring官网Spring系列主要项目Spring官网指南Spring Framework 4.3.17.RELEASE API系统学习教程文档极客学院Spring WikiSpring W3Cschool教程 视频网易云课堂——58集精通java教程Spring框架开发慕课网相关视频面试必备知识点SpringAOP,IO...转载 2019-07-30 16:19:53 · 213 阅读 · 0 评论 -
win环境下jdk7与jdk8共存问题
1.jdk安装包jdk安装包安装步骤略2.jdk等配置文件修改在安装JDK1.8时(本机先安装jdk1.7再安装的jdk1.8),会将java.exe、javaw.exe、javaws.exe三个文件copy到了C:\Windows\System32,这个目录在win环境变量中的优先级高于JAVA_HOME设置的环境变量优先级。所以我们在JAVA_HOME中如何配置都会显示出java8的信...转载 2019-08-15 23:52:21 · 274 阅读 · 0 评论 -
【intellij idea】Project Structure 讲解
项目的左侧面板项目设置->ProjectProject Settings -> ModulesSources面板Paths面板dependencies面板Project Settings - > LibrariesProject Settings - > FacetsProject Settings -> artifacts关于添加...转载 2019-08-27 21:06:15 · 405 阅读 · 0 评论 -
MySQL学习(36)
书籍推荐文字教程推荐视频教程推荐常见问题总结什么是MySQL?存储引擎一些常用命令MyISAM和InnoDB区别字符集及校对规则索引查询缓存的使用什么是事务?事物的四大特性(ACID)并发事务带来哪些问题?事务隔离级别有哪些?MySQL的默认隔离级别是?锁机制与InnoDB锁算法大表优化1. 限定数据的范围2. 读/写分离3. 垂直分区4. 水...转载 2019-07-29 13:28:59 · 486 阅读 · 0 评论 -
Shell 编程入门(28)
Shell 编程入门走进 Shell 编程的大门为什么要学Shell?什么是 Shell?Shell 编程的 Hello WorldShell 变量Shell 编程中的变量介绍Shell 字符串入门Shell 字符串常见操作Shell 数组Shell 基本运算符算数运算符关系运算符逻辑运算符布尔运算符字符串运算符文件相关运算符shell流程...转载 2019-07-19 17:06:43 · 224 阅读 · 0 评论 -
HTTPS中的TLS(26)
1. SSL 与 TLS2. 从网络协议的角度理解 HTTPS3. 从密码学的角度理解 HTTPS3.1. TLS 工作流程3.2. 密码基础3.2.1. 伪随机数生成器3.2.2. 消息认证码3.2.3. 数字签名3.2.4. 公钥密码3.2.5. 证书3.2.6. 密码小结3.3. TLS 使用的密码技术3.4. TLS 总结4. RSA 简单示例5...转载 2019-07-16 17:58:12 · 523 阅读 · 0 评论 -
Java 编程规范(23)
团队阿里巴巴Java开发手册(详尽版) https://github.com/alibaba/p3c/blob/master/阿里巴巴Java开发手册(详尽版).pdfGoogle Java编程风格指南: http://hawstein.com/2014/01/20/google-java-style/个人程序员你为什么这么累: https://xwjie.github.io/rul...转载 2019-07-10 09:39:14 · 225 阅读 · 0 评论 -
入口
入口转载 2019-07-10 22:42:29 · 339 阅读 · 0 评论 -
Java Web开发Session超时设置
在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。设置Session超时时间方式:方式一:在web.xml中设置session-con...转载 2019-07-05 20:31:29 · 533 阅读 · 0 评论