- 博客(29)
- 资源 (40)
- 收藏
- 关注
原创 JVM垃圾回收与调优详解
1.JVM内存分配与回收1.1 对象优先在Eden区分配大多数情况下,对象在新生代中 Eden 区分配。当 Eden 区没有足够空间进行分配时,虚拟机将发起一次Minor GC。我们来进行实际测试一下。在测试之前我们先来看看 Minor Gc和Full GC 有什么不同呢?新生代GC(Minor GC):指发生新生代的的垃圾收集动作,Minor GC非常频繁,回收速度一般也比较快。老年代...
2020-02-18 13:10:49
238
原创 【附录】JVM指令集
跳转到class文件目录,使用javap -c StringTest.class -> p.txt1命令将编译后的文件输出到p.txt文件栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将in...
2020-02-18 12:44:20
168
原创 【附录】JVM性能调优监测工具
Jinfo查看正在运行的Java应用程序的扩展参数查看jvm的参数查看java系统参数Jstatjstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意:使用的jdk版本是jdk8.类加载统计:Loaded:加载class的数量Bytes:所占用空间大小Unloaded:...
2020-02-18 12:38:47
245
原创 【一篇入魂】网络编程中的五种IO模型
我们在进行编程开发的时候,经常会涉及到同步,异步,阻塞,非阻塞,IO多路复用等概念,这几个概念有区别,但是有时候也容易混淆,如果不总结一下的话很容易受到困扰,下面就记录一下这几个概念的理解。Unix网络编程中的五种IO模型Blocking IO - 阻塞IONoneBlocking IO - 非阻塞IOIO multiplexing - IO多路复用signal driven IO -...
2020-01-16 10:33:57
429
原创 【深入理解】Java虚拟机
主要内容JVM整体架构JVM类加载器JVM内存结构JVM执行引擎1.JVM整体架构• JVM(虚拟机):指以软件的方式模拟具有完整硬件系统功能、运 行在一个完全隔离环境中的完整计算机系统,是物理机的软件 实现。常用的虚拟机有VMWare,Virtual Box,Java Virtual Machine• Java虚拟机阵营:SunHotSpotVM、BEAJRockitVM、...
2020-01-07 17:15:37
250
原创 【深入理解】Mysql锁与事务隔离级别
1. 概述1.1 定义锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。1.2 锁的分类从性能上分为乐观锁...
2020-01-07 11:43:34
379
原创 【性能优化】mysql索引优化深入
创建test表(测试表)drop table if exists test;create table test(id int primary key auto_increment,c1 varchar(10),c2 varchar(10),c3 varchar(10),c4 varchar(10),c5 varchar(10)) ENGINE=INNODB default C...
2020-01-06 20:45:03
102
原创 【深入理解】Mysql索引数据结构详解
1.概述索引是帮助MySQL高效获取数据的排好序的数据结构。索引存储在文件里常见的索引结构:二叉树红黑树HASHBTREE数据结构存储演示MySQL底层采用的是BTREE。因为一般当数据量过大时,红黑树的深度过大,高度不可控。而哈希存在的问题是只便于精确定位某一行,当查询范围值的时候不便。B-Tree则一个节点可存储多个索引。磁盘存取原理寻道时间(速度慢,费时)旋转...
2020-01-06 19:04:27
366
原创 【性能调优】Explain详解与索引最佳实践
概述使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的。分析你的查询语句或是结构的性能瓶颈下面是使用 explain 的例子:在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)...
2020-01-06 17:33:30
208
原创 zookeeper安装容易出现的一些问题
1. 启动log一般在mac或者linux下我们启动zookeeper使用./ zkServer.sh start,但是启动失败却没有log,所以建议首次启动使用./zkServer.sh start-foreground,可查看详细的启动信息。2. 查看进程因为zookeeper默认端口为2181,查看是否有启动成功,可使用命令lsof -i:2181查看端口3. Unsupported...
2019-12-31 17:46:12
530
1
原创 【一篇入魂】解决jar冲突
问题:最近接公司项目的SDK,遇到很多jar冲突的问题,比如我们自己的jar和第三方的jar存在相同的包名。想到替换其中一个jar中包名。工具:google提供的 jarjar-1.4.jar步骤:将下载好的jarjar-1.4.jar和待更改的jar(例如:test.jar),放在同一目录下。并在当前目录新建一个rule.txt的描述文件。打开文件,写入配置:rule com....
2019-12-26 13:56:05
127
原创 【一篇入魂】GitHub Desktop图文教程
Git是一款免费、开源的分布式版本控制系统,简单来说,就是一个管理你的「代码的历史记录」的工具Github是用Git做版本控制的代码托管平台,它提供了web界面,你可以在上面创建资源仓库来存放你的项目。本文适合Git新手,帮助你学习Git图形化界面操作,快速上手然后进行工作。1、注册Github账号step 1: https://github.com 注册地址 输入昵称,邮箱,密码注册...
2019-12-24 12:35:05
511
原创 【并发编程】java多线程之锁的深度化
悲观锁、乐观锁、排他锁场景当多个请求同时操作数据库时,首先将订单状态改为已支付,在金额加上200,在同时并发场景查询条件下,会造成重复通知。SQL:Update悲观锁与乐观锁悲观锁:悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据...
2019-12-20 18:00:59
123
原创 【并发编程】java多线程之并发包与并发队列
并发包(计数器)CountDownLatchCountDownLatch 类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计...
2019-12-20 17:35:33
189
原创 【并发编程】java多线程之线程池原理分析
并发包(计数器)CountDownLatchCountDownLatch 类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计...
2019-12-20 17:27:40
168
原创 【并发编程】java多线程之线程间通讯
多线程之间通讯什么是多线程之间通讯?多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。多线程之间通讯需求需求:第一个线程写入(input)用户,另一个线程取读取(out)用户.实现读一个,写一个操作。代码实现基本实现共享资源源实体类class Res { public String userSex; public String userNam...
2019-12-20 16:45:26
119
原创 【并发编程】java多线程之线程安全
什么是线程安全?为什么有线程安全问题?当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。代码:public class ThreadTrain implements Runnable { private i...
2019-12-20 15:53:29
221
原创 【并发编程】java多线程之快速入门
线程与进程区别每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读...
2019-12-20 14:29:01
190
原创 【深入理解】JVM学习笔记—从字节码角度理解动态代理
从字节码角度理解动态代理首先编写一个动态代理实例interface Subject{ void request();}class RealSubject implements Subject{ public void request(){ System.out.println("real subject"); }}class Dynami...
2019-12-17 22:10:18
119
原创 【深入理解】JVM学习笔记—字节码
Java虚拟机不和包括java在内的任何语言绑定,它只与“Class”特定的二进制文件格式关联,Class文件中包含Java虚拟机指令集和符号表以及若干其他辅助信息。本文将以字节码的角度来研究Java虚拟机。字节码Java跨平台的原因是JVM不跨平台首先编写一个简单的java代码,一次为例进行讲解测试1public class MyTest1{ private int a=1...
2019-12-17 22:05:10
179
原创 【面试指南】java中的Object类、常用API
#【Object类、常用API】主要内容Object类Date类DateFormat类Calendar类System类StringBuilder类包装类教学目标-[ ] 能够说出Object类的特点-[ ] 能够重写Object类的toString方法-[ ] 能够重写Object类的equals方法-[ ] 能够使用日期类输出当前日期-[ ] 能够使用将日期格式化...
2019-12-17 09:54:35
135
原创 【一篇入魂】linux常用命令笔记大全
目录操作mkdir: 创建目录 -p : 递归的创建目录 也就是可以创建多层目录 一次创建多个目录: mkdir {a,b,c,d,e,f} 一次创建 a b c d e f多个目录。rmdir:删除一个空文件夹cp:复制文件或者文件夹 -a =-pdr -p 同时复制文件属性,比如修改日期 -d 复制时保留文件链接 -r: 复制文件夹时,递归复制子文件夹 ...
2019-12-16 22:00:59
91
原创 【深入理解】JVM学习笔记—类加载机制
最近看张龙老师的jvm课程做的一些笔记。类加载class loading在java代码中,类的加载、连接和初始化过程都是在程序运行期间完成的。(类从磁盘加载到内存中经历的三个阶段)提供了更大的灵活性,增加了更多的可能性。类加载器深入剖析:Java虚拟机与程序的生命周期在如下几种情况下,java虚拟机将结束生命周期(1)执行了System.exit()方法(2)程序正常执行结束(...
2019-12-16 21:54:29
143
原创 【一篇入魂】Zookeeper入门看这篇就够了
1.1. ZooKeeper 概述Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中 应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维 护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以...
2019-12-11 20:22:53
2605
原创 【一篇入魂】项目从netty3升级netty4之前你需要了解的
Netty3从2016年的3.10.6.Final之后就再没有新版本了,公司项目用的netty3,最近在升级为netty4,下面我们先了解下netty3与netty4的不同之处吧。项目结构的改变Netty的包名从 org.jboss.netty 改成 io.netty, 因为 我们不再是JBoss.org的一份子了.二进制的 JAR 文件被分成多个模块, 这样用户可以从类路径中排除不需要的特...
2019-12-11 18:08:50
1402
原创 【一篇入魂】Maven教程大纲
1 什么是MavenMaven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。[相当于iOS cocoapods]Maven的好处【 lib】 1. 方便jar的管理 2. 不需要上传jar包到svn2如何使用Maven...
2019-12-02 19:55:17
228
原创 【一篇入魂】Git全教程,让你快速上手!
1 Git1.1 git的概述Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。1.2 git的服务器地址国内git服务器地址:https://gitee.com/国外git服务器地址:https://githu...
2019-12-02 19:15:14
229
原创 Xcode升级到 报错 linker command failed with exit code 1 (use -v to see invocation)
Xcode今天升级到10.0,编译项目报错linker command failed with exit code 1 (use -v to see invocation)问题:Xcode今天升级到10.0,编译项目报错linker command failed with exit code 1 (use -v to see invocation)原因:Xcode10不支持libst...
2019-11-25 16:41:18
322
原创 Call to unavailable function 'system': not available on iOS问题的解决方案
Call to unavailable function 'system': not available on iOS问题的解决方案Xcode报错官方方法非官方方法解决方案Xcode报错对于一些老版本的cocos2dx项目或者cocos creator开发的项目,当Xcode升级到9.0或者更高的版本时,运行Xcode项目会报错,call to unavailable function sys...
2019-11-25 16:26:54
372
BulletWar游戏源码coco2d-x开发 lua
2019-11-27
复刻球球大作战战斗功能-cocos-lua开发
2019-11-27
quick-cocos2d-x3.3 lua开发曹操传源码
2019-11-27
手机版三国战记游戏源码(带开发文档).zip
2019-10-17
使用 CycleGAN 进行生成式图像转换.docx
2019-10-17
《炸弹人》游戏源码-boomerv3-Quick-Cocos2d-x 3.3.zip
2019-10-15
Lua实现PureMVC
2019-08-19
仿_放开那三国cocos2d-x源码.zip
2019-07-08
高性能令人上头的2D割草游戏,Roguelite游戏源码,竖版本[creator3.7]
2023-06-07
IDEA的SublimeText3 monokai主题配色风格
2020-04-23
sublime text3支持proto buffer文件语法高亮安装包
2020-04-22
TankBattle坦克大战cocos2d-js开发源码
2020-03-06
精通COCOS2D-X游戏开发 基础卷_2016.4-P399-13961841.pdf
2020-02-22
chromedriver
2020-01-10
apk反编译全套.zip
2020-01-10
鼹鼠挖地quick-cocos2d
2020-01-10
lua实现cocos2d-x的mvvm框架
2020-01-10
3d台球帧同步强联网cocos2d-x完整客户端
2020-01-10
反转贪吃蛇 Cocos2d-x+lua贪食蛇游戏源码
2019-12-13
cocos2d-x半即时战斗rpg游戏demo源码
2019-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人