java基础
进阶的小橙子
年薪15万和年薪50万码农,你知道有什么区别吗?
展开
-
Runtime.getRuntime().addShutdownHook
Runtime.getRuntime().addShutdownHook原创 2022-09-05 17:19:55 · 412 阅读 · 0 评论 -
getParameter和getAttribute简单区别
简单来说getParameter是直接获取客户端设置的数据,返回StringgetAttribute是获取服务器设置的数据,需要先setAttribute,再getAttribute,返回Object原创 2021-03-19 16:06:16 · 77 阅读 · 1 评论 -
联合索引和单列索引
当使用联合(复合)索引时候,一定要遵循最左匹配原则:以最左边的为起点任何连续的索引都能匹配上,也就是当用到 A,AB,ABC才能使联合索引生效。AC只能用到A的单个索引1-:如果第一个字段是范围查询需要单独建一个索引2-:在创建联合索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。这样的话扩展性较好,比如 A经常需要作为查询条件,而 B 不常常用,则需要把 A 放在联合索...原创 2020-03-18 09:56:55 · 715 阅读 · 0 评论 -
JAVA的移位操作
当需要进行乘除法的时候,java支持移位操作,可以加快程序运行速度,减少jvm消耗乘法如 i=i*2 等同于 i=i<<1 ,向左移动1位效果等同于乘以2如 i=i*8等同于 i=i<<3,向左移动3位效果等同于乘以8除法如 i=i/2 等同于 i=i>>1 ,向右移动1位效果等同于除以2,取模如 i=i/8等同于 i=i>&g...原创 2020-02-28 15:40:26 · 122 阅读 · 0 评论 -
当一个空的List作为参数时候需注意
当一个方法中,有一个参数为List时,一定要注意,如果此时List为空时,不可直接add元素,否则会报错(UnsupportedOperationException),因为emptyList不允许add元素,一定要判空之后再操作if(CollectionUtils.isEmpty(opRecordsList)){ opRecordsList= Lists.newArrayLis...原创 2020-01-07 10:40:12 · 1038 阅读 · 0 评论 -
pom文件中有一些jar引入失败问题解决
有时候会碰到pom文件中某个依赖会突然报错,可以有如下解决办法1-ReImport刷新一下maven2-将那个报错的依赖在本地的maven仓库中删除文件夹,然后重复第一步。(原因可能是本地有一个不完整的jar包,idea检测到这个目录一就不会去加载导致的)3-如果是Stringboot项目,可以检查一下parent是否正确(版本号等等) <parent> ...原创 2019-08-24 10:35:25 · 1176 阅读 · 0 评论 -
java的lamada表达式常用例子
最近学习了lamada的常见使用方法,发现其实lamada表达式的确是匿名内部类一种简便的使用,话不多说,如下举例Student studentww=new Student("wangwu",99,"code");Student studentclr=new Student("clr",100,"qianduan");findFirst().get();过滤:要返回list中单个对象的...原创 2019-08-13 14:48:21 · 305 阅读 · 0 评论 -
switch一直报错 Constant expression required
switch 语句编译报错Constant expression required问题:case语句后面必须是常量,使用final修饰,但是我已经用了final修饰了啊,怎么还会编译不过???后来发现如下问题常量之前是public static final Integer QUESTIONNAIRE=2;改成public static final int QUESTIONN...原创 2019-07-02 15:16:19 · 9577 阅读 · 0 评论 -
匿名内部类写法
//创建线程写法一 new Thread(new Runnable() { @Override public void run() { try { System.out.pr...原创 2019-01-28 16:07:31 · 1677 阅读 · 1 评论 -
jackJson和fastJson和Gson用法场景和区别
1.jackJson号称最快,其实不然2.fastJson轻量级,速度最快,支持多类型速度最快:fastjson具有极快的性能,超越任其他的Json功能强大:完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自定义类型。3.Gson支持复杂类型对象,比如转换Object对象,且将Object对象转换成已知对象,很厉害...原创 2019-01-29 11:56:22 · 3023 阅读 · 3 评论 -
HashMap的初始化容量问题
今天阿里提示我的map应该定义一个初始化容量值,如下图提示为默认值16即可,于是乎询问过度娘后得知1-HashMap底层以数组+链表+树来存储数据(java8)2-HashMap默认16个bucket数组3-如果new HashMap<>(19),bucket数组为32,也就是2的5次幂,因为19大于2的4次幂,小于2的5次幂,以大的值为自动扩容值,且容量一定是2的...原创 2019-01-29 15:33:32 · 4802 阅读 · 0 评论 -
Jackson的常用的对实体三种注解
在一些常用的设计到敏感信息的业务中,如果设计到某些字段不想被人看到,比如说银行卡密码,身份证号等,可以在实体类字段中加上Jackson的注解,如下@JsonIgnore 一般对密码进行脱敏@JsonFormat(pattern ="yyyy-MM-dd hh:mm:ss a",locale = "zh",timezone = "GMT+8") 对时间进行格式转换返回@JsonInc...原创 2019-02-28 09:33:58 · 834 阅读 · 0 评论 -
java自定义注解的简单使用
@Inherited@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD,ElementType.METHOD})public @interface ServicePackTest { String code() default "clr";}上面是一个简单的自定义注解Se...原创 2019-05-06 11:19:40 · 226 阅读 · 0 评论 -
HQL语句中使用LIMIT会报错
在使用hibernate时候,如果直接在HQL语句中使用LIMIT,类似于 FROM T_BASE WHERE 1=1 LIMIT 1 ,此时会报错,因为HQL语句不支持,要么改成sql语句,要么在最外面DAO层设置参数@DAOParam(pageStart = true) int start,@DAOParam(pageLimit = true) int limit);...原创 2019-05-22 09:32:21 · 1774 阅读 · 0 评论 -
sql多表查询报主键找不到
sql语句多表联合查询一直报错,报另外一张表的主键列找不到,这是因为你的sql并没有查出另外一个表数据,但是你的Create sql语句的时候,AddEntity不应该添加另外一个表的实体类...原创 2019-05-22 09:59:10 · 430 阅读 · 0 评论 -
Arrays.asList()和List.crear()或removeI()一起使用产生的坑
使用Arrays.asList()将数组转换成集合时,如果后面要使用crear()或removeI()或add()方法,会报错UnsupportedOperationException这个错是在AbstractList的add方法报错的,如下 public void add(int index, E element) { throw new UnsupportedOper...原创 2019-06-04 19:07:08 · 155 阅读 · 0 评论 -
使用ReentrantLock的一点小问题
问题产生:最近使用 ReentrantLock 在批处理代码中的时候,发现应该更新的1000+条数据中,只有2条成功更新了,百思不得其解,后来查询日志得知报了一个错 IllegalMonitorStateException ,问了度娘,解释为当前的线程不是此对象监视器的所有者。也就是要在当前线程锁定对象,才能用锁定的对象此行这些方法,像notify(),notifyAll()方法了,导致某一个...原创 2019-01-28 14:45:20 · 652 阅读 · 0 评论