java
姚贤贤
这个作者很懒,什么都没留下…
展开
-
Java基础编码规范
1.布局1.1顺序(1)在一个类中,布局顺序一次是:变量,构造器,方法,内部类,main(2)类中变量/方法的布局顺序:public static,public,protected.package,private(3)构造器多个时,参数少在前,参数多在后(4)函数重载要集中在一起声明1.2高度(1)每行只有一个句子(2)方法不要超过一屏幕(20-50行)1.3宽度(1)每行不能超过120个字符,对于超过120个字符需要断行缩进(2)方法入参小于5个1.4深度(1)方法圈复杂度小于5原创 2022-05-27 10:32:28 · 667 阅读 · 0 评论 -
java 解决tar.gz压缩中文乱码
使用以下包进行tar打包的时候,如果被压缩的文件包含中文,那么压缩后会出现中文乱码import org.apache.commons.compress.archivers.tar.TarArchiveEntry;import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;import org.apache.commons.compress.utils.IOUtils;解决方法,使用ant:import org.a原创 2021-01-29 16:40:59 · 3099 阅读 · 0 评论 -
Spring boot2.0 入门(十二)-xlsx表格下载与上传(导入)
xlsx工具包用JavaPOI导出Excel时,需要考虑Excel版本及数据量的问题。针对不同的Excel版本,要采用不同的工具类,否则出现错误信息。**HSSFWorkbook:**操作Excel2003以前(包括2003)的版本,扩展名是.xls,行最多65536。**XSSFWorkbook:**操作Excel2007的版本,扩展名是.xlsx,行最多104万行**SXSSFWorkbook:**从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的SXSSF方式。pom.xml&原创 2020-05-24 21:21:38 · 551 阅读 · 0 评论 -
Spring boot2.0 入门(十)-定时器
springboot定时器用起来很简单,都是自带的,直接上代码,看就会,这里介绍常用的:1.在配置中设置好定时器的参数,启动后无法修改2.自由(动态)对定时器启停和控制定时参数1.在配置中设置好定时器的参数,启动后无法修改先在application.yml文件中配置定时时间:commom1:每分钟执行一次comcom2:每天凌晨1点执行cron: commom1: 0 0...原创 2020-03-23 20:06:24 · 290 阅读 · 0 评论 -
java 使用shell top命令查看指定进程CPU和内存使用情况
注意:1.如果pro.waitFor()返回1,j即使根据java文档,是operation not permited,但其实基本就是写的shell命令有问题,有时候在linux上可以执行,但放到了java shell中还不是不能执行,比如top命令,要多加个-b才能执行。2.有时候对于不太活跃的进程进行top命令,会经常得到CPU使用率0,其实可以多次top后再平均。import java...原创 2020-03-19 18:45:51 · 1815 阅读 · 0 评论 -
webInspect SprinBoot2.x安全整改
都是基于Springboot2.x整改一.Insecure Transport: Weak SSL CipherInsecure Transport: Weak SSL Cipher(11285)Insecure Transport: Weak SSL Protocol(11516)Insecure Transport: Weak SSL Protocol(11395)需要进行两步操作:...原创 2019-12-13 17:13:48 · 4583 阅读 · 0 评论 -
ES 6.1.3 java聚合查询并获取结果
有数据,然后按照host_ip,category 进行group by,再取traffic_index的最大值:PUT traffic_infos/doc/1{ "host_ip":"10.42.28.10", "category":10012, "date":"2019-12-03T00:05:00", "traffic_index": 100}PUT traffic_i...原创 2019-12-04 18:46:33 · 4015 阅读 · 2 评论 -
解决Eclipse出现红色感叹号但代码,JDK都没有问题
eclipse出现红色感叹号常见原因1.JDK错误,则在Properties->Java Build Path中修改为正确的JDK2.Referenced Libraries buil path中不小心加入了别的文件,比如图片,so文件等,把这些移除build path即可详细的可以查看problem控制台这里就显示错误的将so文件加入到了build path中,移除即可解决...原创 2019-02-15 17:45:43 · 696 阅读 · 0 评论 -
java使用自定义对象作为HashMap的key
查找key的顺序:1.调用hashCode()计算对象的HashCode,看是否存在表中2.如果存在表中,则调用equals()判断对象是否相同需要重写HashCode和equals方法,如果使用Eclipse就非常简单直接右键->Source->Generate hashCode() and equals(),选择需要作为比较的字段即可public class Studen...原创 2019-02-22 10:37:30 · 2413 阅读 · 0 评论 -
使用ObjectMapper对java对象和Map进行json格式转换
依赖包1.jackson-core-asl-1.9.13.jar2.jackson-mapper-asl-1.9.13.jarpublic class Test { public static void main(String[] args) throws Exception { ObjectMapper o = new ObjectMapper(); Student s...原创 2019-02-22 11:00:53 · 14007 阅读 · 0 评论 -
使用LocalDateTime解析带有微秒,纳秒时间格式yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ
1.使用SimpleDateFormat解析带有微秒,纳秒格式的时间会出现多几分钟的现象,因为SimpleDateFormat只能解析到毫秒,会将微秒等当做毫秒来解析2.使用LocalDateTime来正确解析,JDK1.8后加入package javaTEST;import java.math.BigDecimal;import java.text.SimpleDateFormat;...原创 2019-02-28 19:50:14 · 22885 阅读 · 0 评论 -
java 使用StackTraceElement输出完整错误日志
java常用的错误异常查看通常使用以下几个:1.e.getMessage();2.e.printStackTrace();3.e.toString();但是如果使用log4j记录异常又会有几个问题,e.getMessage(),e.toString();并不是异常的全部信息,而e.printStackTrace()返回值为void.最好的办法就是遍历StackTraceElement,获...原创 2019-02-25 19:56:42 · 3362 阅读 · 0 评论 -
使用DocumentBuilderFactory解析和深度优先遍历XML DOM全部节点
假设有如下xml dom,对其进行遍历解析<?xml version='1.0' encoding='UTF-8' ?><schools><school id="huanggang"> &am原创 2019-03-13 09:52:04 · 1149 阅读 · 0 评论 -
JVM学习笔记
1.运行程序时,JVM所需要的*.class文件加载到JVM,需要一个类的加载器(ClassLoader).2.类的加载器(ClassLoader)的好处:可以随意指定将*.class文件加载到jvm(包括网络上的)3.java可以使用native实现本地C函数的调用,但这些只是属于程序运行的一种辅助手段,而我们真正的程序运行需要”运行时数据区“(包含了方法区,堆,栈,程序计数器,本地方法...原创 2019-03-31 20:42:57 · 217 阅读 · 0 评论 -
java获取两个时间之间的日期,按天计算
public class Test { public static void main(String[] args) throws Exception { List<String> lists = getBetweenTime("2019-01-02 21:20:12","2019-01-08 19:12:20"); for(String list:lists) {...原创 2019-04-19 18:36:25 · 5146 阅读 · 3 评论 -
Spring boot2.0 入门(九)-无Web启动工程
import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.WebApplicationType;import org.springframework.boot.autoconfigure....原创 2019-06-30 18:47:26 · 494 阅读 · 0 评论 -
quartz定时器入门(一)-使用maven创建quartz工程
pom.xml <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <s...原创 2019-06-30 19:03:36 · 693 阅读 · 0 评论 -
quartz定时器入门(二)-通过配置文件配置quartz工程
quartz.properties用于存放quart的配置job.xml 用于存放定时任务jobTest.javapackage com.zte.quartzTest;import java.util.Date;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;...原创 2019-06-30 19:15:47 · 918 阅读 · 0 评论 -
Kafka常用配置说明
一.Broker配置在conf/server.properties中进行设置1.broker.id(default 0)每个broker都需要有一个标识符,建议host1.xx.com,host2.xx.com2.listeners(defualt localhost:9092)监听端口,默认9092,如果使用1024以下端口,需要使用root权限启动Kafka。3.zookeeper...原创 2019-01-10 11:09:08 · 1595 阅读 · 0 评论 -
storm应用入门(一)
一.Storm是一种实时流计算框架具体的表现形式可以从它的组件中看出:Spout:数据来源Bolt:处理点总体来说就是Spout不断的提供数据,而Bolt不断的处理数据,这就形成了数据处理流。二.下面以单词计数为例子:SentenceSpout(Spout,产生句子)-&amp;amp;amp;gt;SplitSentenceBolt(Bolt,对句子进行切割)-&amp;amp;amp;gt;WordCountBolt(Bolt,...原创 2019-01-04 14:06:01 · 1238 阅读 · 0 评论 -
Kafka应用入门
Kafka是一款基于发布和订阅的消息系统运作方式如图:各个组件的作用:生产者:将数据依据主题,分区发往brokerbroker:broker接收来自生产者的消息,为休息设置偏移量,并将消息保存到磁盘zookeeper:管理各个分布式broker节点,为各个节点提供数据共享,数据一致性,选主服务。(可以看一下Zookeeper和Kafka的关系,为啥Kafka依赖Zookeeper )...原创 2018-12-29 15:37:00 · 549 阅读 · 1 评论 -
一句话概括hashMap底层
hashMap,有个table[i]数组,然后里面的元素为Entry<x,y>链表(如果发生碰撞,则链表就会增加碰撞的元素),计算table下标是这样的,下标i=func(hash(key)),func函数再对hash进行一次计算。原创 2017-09-25 20:11:30 · 274 阅读 · 0 评论 -
使用jvmti实现class加密,防止反编译
如果想要保护自己的java代码不被别人反编译,则可以使用下面的jvmti对Class加密,然后在类加载器加载时再进行解密,逃避反编译。 jvmti是java自带的强大工具,我们可以通过jvmti做一些操作(例如:hook class加载,jvm启动前做什么事情,或者jvm初始化时做事情等等) 步骤如下: 1.对class进行加密 2.创建本地方法DLL,实现解密代码 (1)添加jvmti...原创 2017-09-29 10:18:01 · 19919 阅读 · 4 评论 -
java如何处理linux名字乱码批量重命名问题
对于一般批量文件重命名处理:// 第一种public static void main(String[] args) throws IOException { File[] files = new File("/xxxxx/xxx").listFiles(); int num = 1; for (File file : files) { // System.原创 2017-11-20 16:29:24 · 853 阅读 · 0 评论 -
梳理java中的各种流概念
1.什么是流? 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。 设备可以是文件,网络,内存等。2.java中哪些流? 字符流(Reader,Writer),字节流(InputStream,OutputStream)3.为什么在字节流或者字符流上再封装一层具有缓冲的流?例如:BufferedInputStream等 对于输出地缓冲流,原创 2017-11-23 16:48:20 · 213 阅读 · 0 评论 -
浏览 JDK1.6 API
java.applet(JDK1.0): applet 是一种不能单独运行但可嵌入在其他应用程序中的小程序。java.awt(JDK1.0): 包含用于创建用户界面和绘制图形图像的所有类。java.beans: 主要用与JSP,JavaBeans其实也是一个java类java.io(JDK1.0): 提供输出和输入,而且还有缓存,为啥有缓存,是为了提高读取效率 1.Buffered原创 2017-12-04 17:48:34 · 598 阅读 · 0 评论 -
将普通文件夹项目导入eclipse(java项目,Pydev python都可适用)
有时候我们从网上拷贝的代码只有项目代码,并没有eclipse有关配置文件,那么怎么办呢?其实也很简单,随便找个在eclipse中的工程,然后找到.project文件,复制到网上下载下来的文件夹中,然后修改name标签里面的名字就OK了,(如果为Pydev的python文件再多复制一个.pydevproject,不用修改)。 如图为Pydev下,python的项目: ...原创 2018-04-26 16:23:04 · 1375 阅读 · 0 评论 -
java 获取文件SHA1和MD5
一.获取SHA1public static String getFileSha1(File file) { FileInputStream in = null; try { in = new FileInputStream(file); MessageDigest digest = MessageDigest.getInstance("...原创 2018-07-23 19:49:10 · 6434 阅读 · 1 评论 -
java 数据表之间转java对象,ResultSet转换成Java对象
如何把ResultSet转换成Java对象转载 2018-07-24 19:46:35 · 1675 阅读 · 0 评论 -
Spring boot2.0 入门(一)-使用eclipse 创建Spring boot项目
1.下载maven并解压http://maven.apache.org/2.配置eclipse中要使用maven,将maven解压好的路径配置进来Window-&gt;Preferences-&gt;Maven-&gt;Installations-&gt;add3.配置要使用的maven的setting配置文件(在maven的conf目录下),local Repository本地仓库没有...原创 2018-10-31 15:12:59 · 1286 阅读 · 0 评论 -
Spring boot2.0 入门(三)-Spring boot Eclipse打包成jar运行
Spring boot2.0内嵌tomcat8,并且可以直接打包成jar运行,步骤如下:右键工程->runAs->maven build如果直接对Spring boot工程使用maven build打包,在运行jar包的时候,会出现xxx-0.0.1-SNAPSHOP.JAR中没有主清单属性:需要在pom.xml文中添加插件:<build> <...原创 2018-11-09 09:45:15 · 983 阅读 · 0 评论 -
Spring boot2.0 入门(四)-使用RestTemplate 通信多个Spring boot工程
有时候项目中要建立多个微服务,或者把一个大的项目拆分成多个微服务进行解耦,为了方便完成各个微服务之间相互调用,Spring给予了模板类RestTemplate,下面介绍一下RestTemplate的几种用法:1.使用RestTemplate进行Get请求,请求参数较少//通过用户ID获取用户信息public User RestTemplateGet(Long id){ RestTemp...原创 2018-11-09 11:16:32 · 1201 阅读 · 4 评论 -
Spring boot2.0 入门(二)-Spring boot结合mybatis
一.整个工程图二.pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...原创 2018-11-08 20:01:50 · 360 阅读 · 0 评论 -
Spring boot2.0 入门(六)-使用PageHelp实现分页
Springboot可以在pom.xml中添加分页pagehelper,即可实现分页功能一.在pom.xml中添加<!--pagehelper--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactI...原创 2018-11-24 11:30:26 · 10164 阅读 · 4 评论 -
Spring boot2.0 入门(五)-热部署
为了避免在更改代码的时候还要手动重启工程,可以使用热部署。会在Crtl+s保存代码的时候自动重启工程。原理:实现监控classpath下文件的变化,如果发生变化则自动重启使用热部署只需要添加以下依赖即可<!--devtools--> <dependency> <groupId>org.springframework....原创 2018-11-23 15:26:09 · 293 阅读 · 0 评论 -
Spring boot2.0 入门(八)-开启日志logback
Spring boot开启日志功能非常简单,只需要在application.yml同目录下放置logback-spring.xml即可启动日志功能。如下日志设置,在控制台中输出DEBUG及以上的日志,在logs目录底下输出INFO及以上的日志,每个log 50M,保留15天logback-spring.xml&lt;?xml version="1.0" encoding="UTF-8"?&g.原创 2018-11-29 15:53:25 · 551 阅读 · 0 评论 -
Spring boot2.0 入门(七)-使用工厂模式响应请求
有时候只想随便做个微服务,也并不想使用什么Rest风格,就所有接口都使用一个字段进行标识(例子使用method),然后调用相应的接口方法,以下代码所有的http请求都会进入demo这个方法,然后通过请求带的请求标识,通过Spring IOC容器获取相应的Service Bean(这里为Service中的impl取名xxxxProcessor),然后执行相应的方法,这里所有的Service都继承了B...原创 2018-11-26 20:01:00 · 806 阅读 · 0 评论 -
《深入浅出Sprint Boot 2.X》笔记
b.悲观锁,就是加锁以后其它不能去修改,容易造成抢锁和积压c.乐观锁,带版本号更新,我在修改数据前先获取一个版本号,然后在修改的时候查看当前版本号是否符合,如果是则处理,如果不是则直接返回,优点不会造成用户积压比较推荐的是redis的乐观锁实现思路...原创 2018-12-13 20:05:37 · 400 阅读 · 0 评论 -
java.class文件结构学习
1.u1,u2,u3,u4 表示 1字节,2字节,3字节,4字节class文件类型 名称 数量u4 magic 1u2 minor_version 1u2 major_version 1u2 constant_pool_count 1cp_info constant_pool原创 2017-09-01 10:07:08 · 253 阅读 · 0 评论