随笔分类 -  Java从入门到精通再到放弃

摘要:一、线程5种状态 新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。 阻塞状态 阅读全文
posted @ 2018-09-20 20:06 史红星-shihongxing 阅读(607) 评论(0) 推荐(0)
摘要:摘要: 想要同一时间做N个实验?想要同一份流量不同实验之间不干扰?想要每个实验都能得到100%流量? 那么你就需要分层实验。 1. 背景 想要同一时间做N个实验? 想要同一份流量不同实验之间不干扰? 想要每个实验都能得到100%流量? 想要同一时间做N个实验? 想要同一份流量不同实验之间不干扰? 想 阅读全文
posted @ 2018-09-04 17:37 史红星-shihongxing 阅读(2452) 评论(0) 推荐(0)
摘要:Apache优化之KeepAlive ​ KeepAlive是在HTTP1.1中定义的,用来保持客户机和服务器的长连接,执子之手与子偕老。通过减少建立TCP Session的次数来提高性能。常用的配置参数有{KeepAlive, KeepAliveTimeout, MaxKeepAliveReque 阅读全文
posted @ 2018-08-29 14:12 史红星-shihongxing 阅读(642) 评论(0) 推荐(0)
摘要:前言 本文将介绍在Spring MVC开发的web系统中,获取request对象的几种方法,并讨论其线程安全性。下面话不多说了,来一起看看详细的介绍吧。 概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址、请求的url、header中 阅读全文
posted @ 2018-08-20 13:28 史红星-shihongxing 阅读(206) 评论(0) 推荐(0)
摘要:MySql 最经常使用存储引擎 InnoDB 和 MyISAM 都不支持 Hash 索引,它们默认的索引都是 B-Tree。可是假设你在创建索引的时候定义其类型为 Hash,MySql 并不会报错,并且你通过 SHOW CREATE TABLE 查看该索引也是 Hash,仅仅只是该索引实际上还是 B 阅读全文
posted @ 2018-08-03 11:51 史红星-shihongxing 阅读(277) 评论(0) 推荐(0)
摘要:本文首先简单介绍了垃圾收集的常见方式,然后再分析了G1收集器的收集原理,相比其他垃圾收集器的优势,最后给出了一些调优实践。 一,什么是垃圾回收 首先,在了解G1之前,我们需要清楚的知道,垃圾回收是什么?简单的说垃圾回收就是回收内存中不再使用的对象。 垃圾回收的基本步骤 回收的步骤有2步: 1,查找内 阅读全文
posted @ 2018-07-25 17:50 史红星-shihongxing 阅读(341) 评论(0) 推荐(0)
摘要:首先到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下: 解压 jdk-8u131-linux-x64.tar.gz安装包 2、设置环境变量 在最前面添加: 3、执行profile文件 这样可以使配置不用重启即可立即生效 阅读全文
posted @ 2018-07-04 16:58 史红星-shihongxing 阅读(152) 评论(0) 推荐(0)
摘要:方法一:getconf LONG_BIT 在linux终端输入getconf LONG_BIT命令 如果是32位机器,则结果为32 [root@localhost ~]# getconf LONG_BIT 32 如果是64位机器,则结果为64 [root@localhost ~]# getconf  阅读全文
posted @ 2018-07-04 16:54 史红星-shihongxing 阅读(199) 评论(0) 推荐(0)
摘要:概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而snowflake解决了这种需求,开发这样一套 阅读全文
posted @ 2018-07-03 10:09 史红星-shihongxing
摘要:进程和线程 谈到多线程,就得先讲进程和线程的概念。 进程 进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程 线程 进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多子任务在运行,比如聊天线程 阅读全文
posted @ 2018-05-31 09:32 史红星-shihongxing 阅读(134) 评论(0) 推荐(0)
摘要:写NIO程序经常使用ByteBuffer来读取或者写入数据,那么使用ByteBuffer.allocate(capability)还是使用ByteBuffer.allocteDirect(capability)来分配缓存了?第一种方式是分配JVM堆内存,属于GC管辖范围,由于需要拷贝所以速度相对较慢 阅读全文
posted @ 2018-05-31 09:14 史红星-shihongxing 阅读(242) 评论(0) 推荐(0)
摘要:1.位置: (1)/opt/tomcat7/conf下的server.xml文件中<Connector>节点的配置优化,记得先备份。 (2)出厂默认(在server.xml文件中的74行左右,用我们的配置替换现在的配置即可) 2.优化: (1)标准版: <Connector port="8080" 阅读全文
posted @ 2018-03-21 19:28 史红星-shihongxing 阅读(207) 评论(0) 推荐(0)
摘要:在实际项目中,经常会用到POI3.8来导出excel。而导出excel的时候,会因为残留大量以.xml结尾的文件而导致服务器存储空间急剧增长,最后导致系统挂了。为此,该怎么办呢? .xml后缀残留文件示例 通过大量的翻阅资料,目前有两种解决方式: 方式1:手动清除临时文件 POI3.8并没有提供方法 阅读全文
posted @ 2018-02-12 22:02 史红星-shihongxing 阅读(1605) 评论(0) 推荐(1)
摘要:maven 依赖 (版本必须一致,否则使用SXSSFworkbook 时程序会报错) HSSFworkbook,XSSFworkbook,SXSSFworkbook 三者 区别 HSSFworkbook:操作Excel2003版本,扩展名为xls XSSFworkbook:操作Excel2007版本 阅读全文
posted @ 2018-02-12 21:47 史红星-shihongxing 阅读(535) 评论(0) 推荐(0)
摘要:本来这一章应该是介绍与GC相关的内容,不过在此之前,我准备先和各位探讨一下一个编程的小技巧。当然,这个小技巧其实也是与GC密切相关的。 不知道各位猿友有没看过一些JAVA内存相关的文章,里面在罗列建议的时候,经常会写出这样一条建议。 第XX条、请在使用完对象之后,显示的将对象设置为null。 原话不 阅读全文
posted @ 2018-02-11 01:43 史红星-shihongxing 阅读(281) 评论(0) 推荐(0)
摘要:Maven是当前流行的项目管理工具,但官方的库在国外经常连不上,连上也下载速度很慢。国内oschina的maven服务器很早之前就关了。今天发现阿里云的一个中央仓库,亲测可用。 修改${maven.home}/conf或者${user.home}/.m2文件夹下的settings.xml文件,在<m 阅读全文
posted @ 2018-02-10 15:59 史红星-shihongxing 阅读(146) 评论(0) 推荐(0)
摘要:时间格式的遍历: 阅读全文
posted @ 2018-02-01 22:22 史红星-shihongxing 阅读(1059) 评论(0) 推荐(0)
摘要:在讲述这些之前我们需要一些预备知识: Java的内存结构我们可以通过两个方面去看待它。 一、从抽象的JVM的角度去看。相关定义请参考JVM规范:Chapter 2. The Structure of the Java Virtual Machine 从该角度看的话Java内存结构包含以下部分:该部分 阅读全文
posted @ 2018-01-24 18:12 史红星-shihongxing 阅读(341) 评论(0) 推荐(0)
摘要:用法解释 synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对 阅读全文
posted @ 2018-01-24 15:16 史红星-shihongxing 阅读(150) 评论(0) 推荐(0)
摘要:路漫漫其修远兮,吾将上下而求索。——屈原《离骚》 昨天写this用法总结的时候,在文章末尾的时候。现在再重新总结一下 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量; 2)在一个构 阅读全文
posted @ 2016-12-26 11:41 史红星-shihongxing 阅读(174) 评论(0) 推荐(0)