
java基础
文章平均质量分 82
java一些基础知识和小技能
allione
努力、奋斗、拼搏
展开
-
Java定时任务cron表达式
1、完整的cron表达式:由7位以空格分隔的时间元素组成,从左到右分别为:秒、分、时、日期、月份、星期几、年份。原创 2020-06-27 21:15:22 · 1821 阅读 · 0 评论 -
JVM分区与堆对象分配
一、JVM分区1、java堆(线程共享)Java堆是被所有线程共享的一块区域,它也是Java虚拟机管理的内存中最大的一块,它在虚拟机启动时创建;Java堆唯一的目的就是存放对象实例,几乎所有的对象实例的都在这里分配内存;Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为GC堆;Java堆可以处于物理上不连续的内存空间中,只要逻辑上连续即可,在实现时既可以是固定大小也可以是可扩展的,如果堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemory异常;2、方法区(原创 2020-06-22 10:52:14 · 490 阅读 · 0 评论 -
比较器Comparable与Comparator区别
1、Comparable是可比较的,是修饰类的,类实现该接口中的方法compareTo(),即该类是可比较的,有顺序的。在该类可以和自己比较。2、Comparator是比较器,是一个比较工具方法,可以直接继承该接口实现compare()方法,compare方法可以两个对象进行对比。如果是第一种方法的话,可以直接用Collections.sort(List)方法,这里sort默认的排序就是类中实现的comparaTo()方法中的逻辑。如果是第二种方法的话,直接实现接口方法,如下:此时Collect原创 2020-06-22 08:16:38 · 431 阅读 · 0 评论 -
lambda表达式与常用方法
1、什么是lambda,是java8新的特性,是一个匿名函数,可以非常简洁的实现接口。 lambda对接口的要求:接口里面的抽象方法只能够存在一个,或者被@FunctionalInterface修饰接口,或者接口中有一个抽象方法,其他的都是dafault或者静态方法。2、Lambda定义的三个语法: ...原创 2020-06-14 11:05:19 · 1715 阅读 · 0 评论 -
Java异常与throw与throws及注意事项
一、基础知识1、处理异常,java提供了一个优秀的解决方案:异常处理机制。java把异常当作对象来处理,所有的异常都是由Throwable继承而来,但在下一层立即分解为两个分支:Error和Exception2、Error类:这类异常由java虚拟机生成并抛出,大多数错误与代码编写者无关,不能被程序员通过代码来处理。发生这种异常时,java虚拟机一般会选择关闭线程。Error异常很少出现,所以我们更应该关注Exception分支下异常。Exception类:这类异常通常可以被程序处理,也原创 2020-06-14 10:38:42 · 494 阅读 · 0 评论 -
正则表达式知识与使用
一、元字符1)".",点用于匹配除换行符意外的任意字符2)"w",匹配字母或数字或下划线或汉字3)"s",匹配任意空白符4)"d",匹配数字5)"",匹配单词的开始或结束6)"^",匹配字符串的开始7)"$",匹配字符串的结束二、重复限定符(量词)1)"*",重复零次或更多次2)"+",重复一次或更多次3)"?",重复零次或一次4)"{n}",重复n次5)"{...原创 2020-06-14 09:19:58 · 176 阅读 · 0 评论 -
SpringMVC原理与配置
目录:springMVC处理流程,1、SpringMVC框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,设置还能支持文件上传。(1) Http请求:客户端请求提交到DispatcherServlet。 ...原创 2020-05-24 11:23:50 · 166 阅读 · 0 评论 -
SpringMVC框架中配置项
目录:applicationContext配置、bean标签配置、web.xml配置、1、Spring容器分为两种类型:BeanFactory与ApplicationContext1)、BeanFactory:(org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,它根据XML文件中的定义加载beans,该容器从XML文件读取配置元数据并用它去创建一个完全配置的系统或应用。如果没有特殊指定,默认采用延迟初始化策略(lazy-load)只.原创 2020-05-24 11:12:01 · 262 阅读 · 0 评论 -
依赖与插件,父子POM
1、依赖和插件的关系:依赖中被你调用过的函数会与你的代码一起进行编译。对于插件来说呢,比如有些插件是帮助你进行编译工作的,你不用手动写。比如lombok依赖是为了方便用里面的注解@Data等,lombok插件是为了编译这些注解的,识别这些注解。2、父pom和子pom关系:并不是父POM中配置的所有依赖在不同的子类中都能用到、或者用到了但是不是统一版本、为解决这个,在父POM标签中定义依赖信息、在子POM中加入依赖的引入。具体细节如下:在父POM中配置项目中使用到的依赖、但是不再是dependen原创 2020-05-24 10:04:09 · 1021 阅读 · 0 评论 -
记一次CPU飙高,频繁GC事件——大数据处理性能评估
1、背景:航班数据拆分,由原来的航班计划时间段拆分为每天的航班数据,未拆分的数据量400万,拆分为天的数据量1亿左右的数据。2、部署到预发后进行数据拆分搬运之后的机器进程监控情况如下:线程情况没多大变化:Old GC情况:进入机器内部查看:...原创 2020-05-23 22:57:17 · 583 阅读 · 0 评论 -
JVM常用参数(-Xms/-Xmx/-Xss/-Xmn)
先来看服务器配置的参数:1、-Xms:初始堆内存大小,设定程序启动时占用内存大小,默认物理内存1/64 -Xms = -XX:InitialHeapSiz2、-Xmx:最大堆内存,设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常,默认物理内存1/4,-Xmx = -XX:MaxHeapSize。上图中的-Xms与-Xmx设置的大小一样 6000M3、-Xss:设置单个线程栈大小,一般默认512~1024kb。单..原创 2020-05-23 22:13:43 · 7101 阅读 · 0 评论 -
IDEA中Maven配置与Maven项目创建
简介:Maven管理和构建项目好用和简单,可以管理项目的整个生命周期。Maven仓库用于存放工程的JAR包,供需要依赖的工程去引入 中央工厂:https://search.maven.org/ https://repo.maven.apache.org/maven2 包含POM文件和JAR包下载。1、IDEA中Maven配置,配置maven包,和本地仓库,Override表示覆盖原来的默认值。 Import Maven projects...原创 2020-05-22 08:37:27 · 625 阅读 · 0 评论 -
String与list互转
1. ArrayList 转换为 String[]: ArrayListlist = new ArrayList<>(); list.add("aaa"); list.add("bbb"); String[] arrString = (String[]) list.toArray(new String[list.size()]) ;2. String[] 转换为 ArrayList: List<String> list = Arrays.asLi..原创 2020-05-20 09:17:25 · 1741 阅读 · 0 评论 -
日志框架与logback配置
1、日志框架市面上的日志框架有:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....其中有日志门面(抽象层)和日志实现。起源:JCL最后一次更新是2014年,log4j与logback是同一个人写的,log4j有性能问题,对其进行升级改动太大,就重新写了logback,为了以后有新的日志框架,所以同时写了日志门面slf4j,JUL是java在log4j刚出来时怕日志市场被占,log4j2是apache公司重新写的日志框...原创 2020-05-20 08:22:39 · 158 阅读 · 0 评论