- 博客(26)
- 收藏
- 关注
原创 Java多线程的使用有三种方法总结
Java多线程的使用有三种方法总结:继承Thread类实现Runnable接口和使用Callable和Future创建线程本文将对这三种方法一一进行介绍。1、继承Thread类public class MyThread extends Thread { @Override public void run(){ super.run(); ...
2019-09-25 15:25:14 145
原创 拍照计划-古装
这个很简单这个很nice主要裙子和手 需要拍照很快很昵称做在某第 兰花斜着这个需要有前景 当个边框脸要向摄像头倾斜 俏皮上水桥阁楼
2020-07-17 12:52:59 249 1
原创 拍照计划-jk
如果模特 脸比较精致可以进行细拍,身材号可以拍些显示身材的这个其实可以不要遮住下巴,花可以换成扇子。在图拉长一点 ,或者手扯着扇子换成扇子这个适合jk造型 ,如果摄影师在草地上俯拍,从草到脚这个适合拍在花里面,古典jk都新很唯美 花和人问花运动动性 ,跑起来回头运动性露肚子这个也不错万能动作 要偏头裙子转起来 90°用力 应该可以这个比较文艺这个也不错忧郁这个显身材...
2020-07-17 11:57:08 192
原创 go高并发案例---请求合并处理
在项目中一般会请求第三方的接口,也会对外提供接口,可能是RPC,也可能是HTTP等方式。在对外提供接口时,有必要提供相应的批量接口,好的批量实现能够提升性能。 在高并场景中,调用批量接口相比调用非批量接口有更大的性能优势。比如获取商品详情接口,app的一次请求是个单接口调用,用户很少情况下是没问题。如果有大量用户查询详情,这个接口频繁调用,在这一时刻高频获取数据库等资源或者多次存在查询重复详情将浪费服务器性能。怎样能优化这个接口呢? 我们可以获取这一时刻的全部请求,请求资源进...
2020-06-24 15:45:52 2067
原创 优化10
你好,我是刘超。今天我将带你了解下服务间的网络通信优化。上一讲中,我提到了微服务框架,其中 SpringCloud 和 Dubbo 的使用最为广泛,行业内也一直存在着对两者的比较,很多技术人会为这两个框架哪个更好而争辩。我记得我们部门在搭建微服务框架时,也在技术选型上纠结良久,还曾一度有过激烈的讨论。当前 SpringCloud 炙手可热,具备完整的微服务生态,得到了很多同事的票选,但我们最终的选...
2020-04-01 11:54:26 227
原创 优化09
你好,我是刘超。当前大部分后端服务都是基于微服务架构实现的。服务按照业务划分被拆分,实现了服务的解耦,但同时也带来了新的问题,不同业务之间通信需要通过接口实现调用。两个服务之间要共享一个数据对象,就需要从对象转换成二进制流,通过网络传输,传送到对方服务,再转换回对象,供服务方法调用。这个编码和解码过程我们称之为序列化与反序列化。在大量并发请求的情况下,如果序列化的速度慢,会导致请求响应时间增加;而...
2020-04-01 11:53:55 202
原创 优化08
你好,我是刘超。提到 Java I/O,相信你一定不陌生。你可能使用 I/O 操作读写文件,也可能使用它实现 Socket 的信息传输…这些都是我们在系统中最常遇到的和 I/O 有关的操作。我们都知道,I/O 的速度要比内存速度慢,尤其是在现在这个大数据时代背景下,I/O 的性能问题更是尤为突出,I/O 读写已经成为很多应用场景下的系统性能瓶颈,不容我们忽视。今天,我们就来深入了解下 Java I...
2020-04-01 11:53:20 165
原创 优化06
你好,我是刘超。在上一讲中我提到过 Collection 接口,那么在 Java 容器类中,除了这个接口之外,还定义了一个很重要的 Map 接口,主要用来存储键值对数据。HashMap 作为我们日常使用最频繁的容器之一,相信你一定不陌生了。今天我们就从 HashMap 的底层实现讲起,深度了解下它的设计与优化。常用的数据结构我在 05 讲分享 List 集合类的时候,讲过 ArrayList 是基...
2020-04-01 11:52:32 119
原创 优化06
你好,我是刘超。上一讲中,我在讲 List 集合类,那我想你一定也知道集合的顶端接口 Collection。在 Java8 中,Collection 新增了两个流方法,分别是 Stream() 和 parallelStream()。通过英文名不难猜测,这两个方法肯定和 Stream 有关,那进一步猜测,是不是和我们熟悉的 InputStream 和 OutputStream 也有关系呢?集合类中新...
2020-04-01 11:51:53 173
原创 优化05-补充
你好,我是刘超。很多同学给我留言想让我讲讲工具,所以我的第一篇加餐就光速来了~熟练掌握一款性能测试工具,是我们必备的一项技能。他不仅可以帮助我们模拟测试场景(包括并发、复杂的组合场景),还能将测试结果转化成数据或图形,帮助我们更直观地了解系统性能。常用的性能测试工具常用的性能测试工具有很多,在这里我将列举几个比较实用的。对于开发人员来说,首选是一些开源免费的性能(压力)测试软件,例如 ab(Apa...
2020-04-01 11:50:54 356
原创 优化05
你好,我是刘超。集合作为一种存储数据的容器,是我们日常开发中使用最频繁的对象类型之一。JDK 为开发者提供了一系列的集合类型,这些集合类型使用不同的数据结构来实现。因此,不同的集合类型,使用场景也不同。很多同学在面试的时候,经常会被问到集合的相关问题,比较常见的有 ArrayList 和 LinkedList 的区别。相信大部分同学都能回答上:“ArrayList 是基于数组实现,LinkedLi...
2020-04-01 11:49:44 128
原创 优化04
你好,我是刘超。上一讲,我在讲 String 对象优化时,提到了 Split() 方法,该方法使用的正则表达式可能引起回溯问题,今天我们就来深入了解下,这究竟是怎么回事?开始之前,我们先来看一个案例,可以帮助你更好地理解内容。在一次小型项目开发中,我遇到过这样一个问题。为了宣传新品,我们开发了一个小程序,按照之前评估的访问量,这次活动预计参与用户量 30W+,TPS(每秒事务处理量)最高 3000...
2020-04-01 11:48:36 229
原创 优化03
你好,我是刘超。从第二个模块开始,我将带你学习 Java 编程的性能优化。今天我们就从最基础的 String 字符串优化讲起。String 对象是我们使用最频繁的一个对象类型,但它的性能问题却是最容易被忽略的。String 对象作为 Java 语言中重要的数据类型,是内存中占据空间最大的一个对象。高效地使用字符串,可以提升系统的整体性能。接下来我们就从 String 对象的实现、特性以及实际使用中...
2020-04-01 11:44:38 170
原创 性能调优02
你好,我是刘超。上一讲,我在介绍性能调优重要性的时候,提到了性能测试。面对日渐复杂的系统,制定合理的性能测试,可以提前发现性能瓶颈,然后有针对性地制定调优策略。总结一下就是“测试 - 分析 - 调优”三步走。今天,我们就在这个基础上,好好聊一聊“如何制定系统的性能调优策略”。性能测试攻略性能测试是提前发现性能瓶颈,保障系统性能稳定的必要措施。下面我先给你介绍两种常用的测试方法,帮助你从点到面地测试...
2020-04-01 11:43:47 352
原创 性能调优01
我有一个朋友,有一次他跟我说,他们公司的系统从来没有经过性能调优,功能测试完成后就上线了,线上也没有出现过什么性能问题呀,那为什么很多系统都要去做性能调优呢?当时我就回答了他一句,如果你们公司做的是 12306 网站,不做系统性能优化就上线,试试看会是什么情况。如果是你,你会怎么回答呢?今天,我们就从这个话题聊起,希望能跟你一起弄明白这几个问题:我们为什么要做性能调优?什么时候开始做?做性...
2020-03-23 16:35:32 252
原创 集合说明
ArrayList,Vector, LinkedList 的存储性能和特性名称底层结构线程安全场景arraylist数组不安全它适合随机查找和遍历,不适合插入和删除linklist双链表不安全数据的动态插入和删除Vector数组安全它支持线程的同步,速度慢hashmap 的数据结构?数组+链表+红黑树key 的hanshcode进行...
2020-01-09 14:45:31 142
原创 java中级技术点
mysql:数据隔离机制 索引策略和索引实现原理、T-树 数据路由概率 数据库高可用,主从复制原理(blog)mycat工作原理,如何分库分表 数据库和sql如何优化 (explain)redisredis 数据类型和数据结构(类型实现原理),类型操作api等 lue实现分布式锁 为什么使用单线程,redis为什么是高效的 redis的key和string类型value限制...
2019-11-21 15:57:57 160
原创 jvm分析
什么时候触发GCgc 分两组(ScavengeGC或ygc)Minor GC,另一种是FullGC,前者是对年轻代进行回收,后者都是正个堆进行回收(年轻代、老年代和持久代)都会停止应用程序的线程,不过这个过程非常短暂。1、当eden申请内存申请失败时,触发Minor GC2、当老年代(Tenured)被写满、持久代(Perm)被写满、System.gc() 被显示调用以及上一次GC之后...
2019-10-19 15:58:21 190
原创 Synchronized多方面思考
Synchronized(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序package com.paddx.test.concurrent;public class SynchronizedDemo { public void method() { synchronized (this) { Sy...
2019-10-18 18:35:40 121
原创 ElasticSearch
jdk1.8 安装 yum install java-1.8.0-openjdk* -y可能会报这个错误Caused by: java.lang.RuntimeException: can not run elasticsearch as root解决方法:adduser *** //添加用户su 用户名./elasticsearch后台运行 ./elastics...
2019-10-17 15:49:53 283
原创 ThreadPoolExcutor线程池
Executors方法创建自带线程池Java 里面线程池的顶级接口是 Executor,但是严格意义上讲 Executor 并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是 ExecutorService线程池不建议使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:E...
2019-10-15 16:40:00 239
原创 mysql优化
数据库分库分表水平切分:将同一个表数据分块保存到不同的数据库1、产品表(数据量10w,稳定)2、订单表(数据量200W,且有增长趋势)3、用户表(数据量100w,且有增长趋势)如1、将用户表分成男用户表和女用户表2、订单表通过已完成和完成中拆分为已完成订单和未完成订单3、商品表未完成订单放一个server上,已完成订单表和男用户表放一个server上,女用户表放一个...
2019-10-08 15:59:44 195
原创 java 反射
Java反射就是在运行状态中,对于任意一个类,1、都能够知道这个类的所有属性和方法;2、都能够调用它的任意方法和属性;3、并且能改变它的属性。Class cla=Class.forName("com.TestOne");//进行com.TestOne类加载,返回一个Class对象 System.out.println("********"); ...
2019-09-26 15:47:00 116
原创 类加载
类加载生命周期:加载、验证、准备、解析、初始化、使用、卸载加载分两类加载器启动类加载器 :hotSpot其他类加载器:自己写的类继承ClassLoader,启动类加载器后才能加载其他类在执行非置信代码之前,自动验证数字签名。 动态地创建符合用户特定需要的定制化构建类。 从特定的场所取得 java class,例如数据库中和网络中。启动类加载器:bootstrap ...
2019-09-26 09:59:22 104
原创 Java中final关键字使用说明
1、用final来修饰数据修饰数据是不能更改2、final修饰的是对象不能改变对象的引用,但是可以修改对象的属性值3、用final来修饰参数修饰数据是不能更改4、用final来修饰方法(函数)的时候锁住方法,防止继承它的类来修改(覆盖)它总结:用final修饰,主要是为了表现“不可修改性”,从而提高安全性 。...
2019-09-25 14:56:54 214 1
原创 java中euqal和==的区别
java中euqal和==的区别1、数据类型中和“==”的区别在基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。这些比较的是他们的值在复合数据类型(类)或者Intger、long等这些比较的是他们在内存中的存放地址2、equals()说明类对象之间进行equals比较,在没有覆写equals...
2019-09-25 14:39:54 362 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人