- 博客(11)
- 资源 (3)
- 收藏
- 关注
原创 JVM核心技术-CMS垃圾收集器
CMS GC 的设计目标是避免在老年代垃圾收集时出现长时间的卡顿,主要通过两种手段来达成:1、不对老年代进行整理,而是使用空闲列表(free-lists)来管理内存空间的回收2、在 mark-and-sweep (标记-清除) 阶段的大部分工作和应用线程一起并发执行。启动参数:#使用CMS垃圾收集器-XX:UseConcMarkSweepGC #每一次FullGC之后进行一次碎片整理(默认开启) Java9废弃参数-XX:+UseCMSCompactAtFullCo
2020-10-26 14:15:43
348
原创 Java核心技术-并发编程-同步器
面对大并发场景下,偶尔会出现排队调度相关情况,在Java中有几个比较常见的调度模式,本文将分享这些调度模式:CountDownLatch倒计时门栓CyclicBarrier障栅Semamphore信号量Phaser循环障栅Part-1:CountDownLatch倒计时门栓用来同步一个或多个任务,强制它们等待由其它任务执行的一组操作完成。门栓是一次性的当计数器为0的时候就不能再重用了。public class StudyCountDownLatch { private final
2020-10-13 22:05:04
294
1
原创 Java核心技术-并发编程-锁
日常说到高并发往往针对共享资源进行读写操作很容易得到错误的结果,这个时候就需要应用到各种个样的锁,本文通过4种锁进行分享:synchronizedReentrantLock(可重入锁)ReentrantReadWriteLock(读写锁)StampedLock(戳锁)Part-1:synchronized同步代码块public void testSynchronizedCode() { synchronized (lockObject) { System.out
2020-10-10 22:49:10
406
2
原创 Java核心技术-并发编程-线程与线程池
在现在互联网项目中,经常面对的是高并发的场景,而针对面对高并发的系统架构主要在缓存、分布式数据库、消息队列、分布式部署等进行分享。如何提高单应用的响应能力就跟线程有莫大的关系了。本文将通过以下内容进行分享:任务线程线程状态线程属性线程池Part-1:任务//定义任务:实现Runnable接口public class LiftOff implements Runnable { protected int countDown = 10; private static int
2020-10-09 17:06:54
185
原创 2020年秋季饮品推荐
随着“秋季的第一杯奶茶”这个梗火红网络,认识到秋天真真的来到身边了,秋季来了意味着空气干燥,能让人干到喉咙带血丝,鼻腔一捏就痛的地步,在这个季节广东人可以喝凉茶,咱们也可以通过改善自己的饮品让自己生活也舒服点。分享一下个人秋季饮品:菊花茶、陈皮、白茶。菊花茶菊花茶在喝茶人眼里是败火的象征,其中菊花不仅仅是用来喝的还能用来看的,在喝了很多菊花类型中觉得还是在茶博会中喝到婺牌两款比较合适。小黄菊[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-om5sS1Tj-160191
2020-10-09 11:11:53
219
2
原创 Spring Boot 集成RabbitMQ一篇就够
面对日益复杂的信息平台,消息队列使用是解决什么问题呢?初步总结一下可以解决如下场景问题:业务解耦:A系统需要耦合B、C、D系统,在消息队列之前可以通过共享数据、接口调用等方式来实现业务,现在可以通过消息中间件进行解耦。削峰填谷:在互联网经常会出现流量突然飙升的情况,以前很多时候就是通过性能优化、加服务器等方式,可以通过消息中间件缓存相关任务,然后按计划的进行处理。异步:可以通过消息推送及短信发送进行说明,业务平台并不关注具体消息的发送细则,完全可以通过消息队列的方式,直接下发任务,由任务消费者进行处
2020-10-09 11:06:22
334
原创 Spring Boot 集成JPA一篇就够
目前市场上Java语言ORM框架有Mybatis、Hibernate、Spring Data JPA,其中JPA底层还是使用Hibernate实现,引用JPQL查询语言,属于Spring整个生态体系的一部分,使用起来比较方便,加快了研发效率。Part-1: Jpa基础知识本章节将通过一些例子让大家对Jpa的日常使用有一个了解。数据库准备CREATE TABLE `user_info` ( `id` bigint NOT NULL AUTO_INCREMENT, `first_name`
2020-10-05 16:04:32
434
原创 Android自动化测试Appium:虚拟机(Genymotion)搭建
Part-1:虚拟机管理工具搭建:1、Genymotion安装:https://www.genymotion.com/download/ 软件针对windows版本带VisualBox版本和不带WindowsBox版本,本人在Windos和mac两个平台均有搭建,Windows版本用的是带VisualBox,下文所有截图均为Mac版本。注册Genymotion后进行激活,在最后启动的时候选择Personal UserGenymotion主页面添加Android镜像镜像添加成功可以通过电脑S
2020-08-03 14:13:21
291
原创 AlchemySQL实体类生成数据库表
Part-1: 数据库实体声明class AppiumServer(BaseEntity): """ 自动化工具服务信息 """ __tablename__ = 'appiumServer' id = Column(Integer, Sequence("appiumServer_id_seq"), primary_key=True) appium_server_name = Column(String(200)) appium_server_u
2020-07-22 20:51:40
229
原创 Android自动化测试Appium:环境搭建
Part-1:环境搭建安装 Appium 下载地址:http://appium.io/安装Android SDK 下载地址:http://tools.android-studio.org/index.php/sdk 更新Android SDK信息,Shell命令:tools/android update sdk --no-ui 配置路径:androidSdk、tools、platform_tools 如下:export ANDROID_HOME=/Applications/Serve
2020-05-21 09:26:47
162
原创 IT研发团队管理容易忽视的那些事
背景介绍 面对VUCA环境,很多公司都急切期望用更少的成本来达成或超越业务目标,当前市面上已经涌现出很多的方法,如敏捷方法、精益思想、DevOps、持续交付、等。不可否认这些方法取得很多不错的成效,这里就不做太多的陈述了。面对复杂的业务领域,作为技术体系该怎么样的应对这样的环境挑战呢?建议技术体系在如下方面发力:团队管理方面技术管理方面...
2020-03-03 20:11:12
210
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人