Java
Java
Lucky-肥仔
做一个不屈服命运的架构设计者
展开
-
Supplier<T>和Consumer<T>
@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a result. * * @return a result */ T get();}@FunctionalInterfacepublic interface Consumer<T> { /** * Performs this operation on the given.原创 2022-05-31 14:55:46 · 431 阅读 · 1 评论 -
Cannot resolve type description for org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite
项目中别的jar包引用的版本为2.4.8,版本太高,直接将高版本的排除掉,然后换成2.1.7。问题解决 <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-executor</artifactId> ...原创 2020-05-06 18:21:39 · 781 阅读 · 0 评论 -
HttpServletRequest-request.getRequestedSessionId()和request.getSession().getId()的区分
今天在做一个权限登录的时候,发现有一个很类似,但是还是很区别的。今天好好的学习一下。首先看一下这个介绍session的文章,复习一下。JavaWeb学习总结(十二)——Sessionrequest.getSession().getId()服务端创建,一个浏览器独占一个session对象(默认情况下),HttpServletRequest中有:HttpSession getSess...原创 2020-04-19 23:53:04 · 11103 阅读 · 0 评论 -
MYBATIS-mybatis批量插入返回主键ID报错
使用mybatis进行批量插入的时候,并且数据库设置的是主键递增,并且在插入的时候需要返回主键id的时候,报null错误。也就是查询不到刚刚插入到数据库的id。背景:springboot+mbatis+插件spring-boot-mybatis-rw关于插件spring-boot-mybatis-rw 是做什么的,请见博客https://blog.csdn.net/lifen0908/arti...原创 2020-04-01 23:31:41 · 2646 阅读 · 0 评论 -
java中的YYYY和yyyy的日期bug
public static void main(String[] args) { Calendar calendar=Calendar.getInstance(); //2019-12-31 calendar.set(2019,Calendar.DECEMBER,31); Date strDate=calendar.getTime(...原创 2020-01-09 14:13:19 · 688 阅读 · 2 评论 -
史上最全阿里 Java 面试题总结
转载于:https://blog.csdn.net/youanyyou/article/details/82142014JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。String类能被继承吗,为什么。String,Stringbuffer,StringBuilder的区别。ArrayList和LinkedList有什么区别。讲讲类的实例化顺序,比如父类静态数据,...转载 2019-11-13 15:47:09 · 222 阅读 · 0 评论 -
java获取用户IP的方法
public static final String UNKNOWN_IP="unknown"; /** * 获取当前request的真实ip * * @param request * @return */ public static String getIpAddress(HttpServletRequest request...原创 2019-10-12 14:10:00 · 767 阅读 · 0 评论 -
Java8的LocalDate
最近一直在用它,感觉用它操作时间还是很方便的。但是需要注意的是 LocalDate不能序列化,所以不能在dubbo接口中作为参数来传递 下面我列举一下我用到的它的功能 //当前日期 LocalDate lDate = LocalDate.now(); System.out.println("当前日期-"+lDate); ...原创 2019-08-07 14:51:10 · 210 阅读 · 0 评论 -
Compilation failed: internal java compiler error
解决办法很简单:File-->Setting...-->Build,Execution,Deployment-->Compiler-->Java Compiler原创 2019-05-30 16:47:24 · 212 阅读 · 0 评论 -
Java8使用Optional注意事项
最近在服务化一个项目,以前是一个工程,所以接口都是使用的optional,但是升级为dubbo接口,因为他不支持序列化,所以在用dubbo接口中不能使用。转载地址:https://www.cnblogs.com/woshimrf/p/java-optional-usage-note.html#_caption_1Optional不能序列化,不能作为类的字段(field)这...原创 2019-04-23 19:06:04 · 1834 阅读 · 1 评论 -
JAVA中char和String/值类型和引用类型的区别
[java] view plain copyimport java.util.*; class test { public static void main(String[] args) { char a[] = {'b', 'a', 'c'}; String b = "111"; f(a,b); ...转载 2018-02-27 23:22:33 · 2203 阅读 · 4 评论 -
[JAVA]反射
最近项目一直在用反射,拿来总结总结。java自带反射获取对象的方法Object obj = activeList.get(j);Method method = obj.getClass().getDeclaredMethod("方法名字");student.setCode((String) method.invoke(obj)); //(String) method.in原创 2018-01-28 22:44:41 · 322 阅读 · 2 评论 -
JAVA8你只需要知道这些(4)
java8的Stream写法,让你告别For循环,快点学习起来吧!让你的代码更加的简洁!非常喜欢啊!!!package Stream; import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.UUID;原创 2017-10-08 22:25:18 · 427 阅读 · 2 评论 -
JAVA8你只需要知道这些(3)
前言在上篇文章中,我们提到了java.util.stream包,今天我们就来详细的研究一下这个包。整体框架分析stream包,我们先从整体架构入手,然后再深入到细节。我们先来看看API文档:1.png 从上图中可以看见stream包中的接口比较多,类和枚举比较少。我们先来看接口:java8-stream.png DoubleS转载 2017-10-08 22:19:18 · 451 阅读 · 1 评论 -
JAVA8你只需要知道这些(2)
前言上篇文章我们讲了JAVA8中接口和匿名内部类的一些新特性。这篇文章我们将继续深入的研究JAVA8。1.Function包 在JAVA8中引入了java.util.function包,这个包里面全是接口,其中有四个接口值得我们注意:1.Function 功能型接口@FunctionalInterfacepublic interface Function { R appl转载 2017-10-08 22:17:47 · 478 阅读 · 1 评论 -
JAVA8你只需要知道这些(1)
前言JAVA8发布有一段时间了,个人觉得JAVA8里的改动,有很多是颠覆性的。虽然目前用JAVA8的人还比较少,但是既然JAVA8中加入了这些新特性,就应该研究一下,毕竟以后总要用到。接口要说到JAVA8中引入的新特性,我们就得从接口说起。在很长一段时间里,我们对接口的印象是这样的:public interface IMessage { public void send(S转载 2017-10-08 22:08:53 · 569 阅读 · 1 评论 -
【面试】JAVA关键字
java关键字原创 2017-08-29 21:43:14 · 380 阅读 · 3 评论 -
【Java基础】多线程之volatile
在讲volatile之前,首先明确和synchronized的区别:1:volatile是变量修饰符,而 synchronized作用于一段代码或者是方法。2:多线程访问volatile不会发生阻塞,而synchronized会出现阻塞。3:volatile能保证数据的可见性,但是保证不了原子性,而synchronized可以保证原子性,也可以间接地保证可见性,因为他会将私有内存和公共原创 2017-06-24 22:02:59 · 719 阅读 · 60 评论 -
【Java基础】多线程之synchronized
为什么要用synchronized 多线程可以提高效率,但是在共享变量的情况下,可能出现混乱的情况,比如A线程将共享变量 m=5,但是B线程在用m变量的时候,出现了混乱。这样多个线程共同访问同样的一个资源,你争我夺,一团乱。线程的不安全现象一触即发。所以必须要对这种资源冲突进行预防。 所以,在共同访问的资源进行加锁即可,第一种方法就是同步锁,也即原创 2017-06-24 18:01:24 · 478 阅读 · 10 评论 -
【Java基础】JVM学习
jvm虚拟机的知识,请看图。原创 2016-11-30 16:08:38 · 569 阅读 · 13 评论 -
【Java基础】多线程——基础
概述: 在操作系统中,每一个独立执行的程序都可称之为一个进程,多线程是指一个应用程序中有多条并发执行的线索,每一条线索叫做一个线程。同时JAVA是支持单继承的,也就是仅仅可以有一个父类。 在JAVA中有俩种方式来创建多线程,分别是Thread 和Runnable,但是一个是类,一个是接口,也就自然而然的一个需要继承,另一个仅仅实现就可以啦,所以在java中常原创 2016-08-30 17:47:14 · 722 阅读 · 25 评论 -
Centos7安装jdk
对于Linux下的jdk安装,应该是使用Java开发的程序员的一项基本技能,下面演示安装的步骤1.下载linux对应 jdk包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择对应版本下载我用的版本:jdk-8u121-linux-x64.tar.gz原创 2017-03-26 10:41:28 · 891 阅读 · 18 评论 -
JDK版本报错:override a superclass method和java compiler level does not match the version
错误: @Override must override a superclass method 解决: 首先看看这里的jdk版本: 在工具栏的window---- Preferences中,选择jdk版本,1.5是不支持override的注解的,需要原创 2016-12-27 21:40:42 · 1476 阅读 · 26 评论 -
配置JDK————找不到或无法加载主类
虽然在软考的时候就学习了 马士兵的J2SE,记得当时我的环境变量总是配不好,今天再次学习,又遇到了这个问题,记录一下。问题:找不到或无法加载主类 原因: 环境配置问题。 首先:控制面板——系统和安全——系统——高级系统设置——点击高级中的环境变量,出现了如下的窗体:原创 2015-11-23 11:46:43 · 2566 阅读 · 35 评论 -
Mybatis的$要比#快很多
我们写sql的时候,一般而言为了安全性都会用#,但是 由于$不用是相当于直接拼接,不需要像#需要首先解析成?然后再拼接,速度要快很多。在能够保证安全的情况下,可以试着用$...原创 2019-08-07 14:14:58 · 1790 阅读 · 0 评论 -
Mybatis批量更新报错,但是单个更新却成功
项目上了测试环境,很OK,今天部署到了预发布,却直接报错了。 批量更新的sql直接报错,一把辛酸泪。 mysql默认不支持批量更新的,需要我们手动的加上配置&allowMultiQueries=true 也就是允许多行操作 xxx.druid.url=jdbc:mysql://xxxxxxxxxxxxxxxxxxxxxx? useUnicod...原创 2019-08-01 21:30:04 · 828 阅读 · 0 评论 -
MyBatis中#{}和${}的不同和${}的妙用
突然意识到sql语句的独特语义要和代码分离,我们就不能够在代码中写sql语句!!比如我要用${}在MyBatis的sql中拼接排序类型的时候,我就不能够在Java代码中直接写参数字符串为Order By哪儿个类型#{}和${}的基本不同我就不想说了,这里要说的是进一步对占位符和字符拼接的字面语义的领悟!!#{}和${}基本不同在这篇文章的最后有提到过占位符:占位符就是在某个地方占领一个...转载 2019-05-10 15:57:46 · 586 阅读 · 0 评论 -
强烈推荐读写分离插件-spring-boot-mybatis-rw
需求:对于一些统计类型的接口,部分是运营看的,实时性不太强,但是查询特别的复杂,查主库?不好,万一锁库呢。查从库。对直接查从库就好了。 对于老项目,有没有直接配一下从库就直接走从库的啊?当然有了。一个后台给运营配置数据和查询统计的后台管理系统,有好几个查询都很慢,假如走主库的话,怕会影响前端接口的调用。所以,直接走从库。很好用,强烈推荐。 git如下 ...原创 2019-11-04 15:34:17 · 450 阅读 · 0 评论 -
【spring】事务管理之声明式事务
这篇博客我们说一下spring的XML配置声明式事务。1、基于TransactionProxyFactoryBean首先我们看一下TransactionProxyFactoryBean这个接口,这个代理工厂类对事务管理的业务类进行了代理。在spring2.0之后,开始通过AOP的命名空间方式声明事务,这种通过TransactionProxyFactoryBean实施声明式事务的方式原创 2017-08-07 11:09:12 · 430 阅读 · 6 评论 -
【spring】事务管理之threadlocal
在讲编程式事务之前,我们先来说一下threadlocal。 由于spring为各种支持的持久化技术都提供了简单化操作的模板和回调,这些模板类都是线程安全的。也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。使用模板类访问底层数据的时候,根据底层中的持久化技术不同,模板类需要绑定不同的数据连接或者会话的资源。这些资源都是非线程安全的,也就是说他们不能再同一个时刻被多个线程共享。原创 2017-02-27 14:35:55 · 2291 阅读 · 7 评论 -
【spring】事务管理之初识
数据并发会出现什么问题?脏读、不可重复读、幻想读等。为了解决这个问题。我们可以用事务,用于确保数据的完整性和一致性。事务的4个特点; 1 原子性 确定动作要不全部执行,要不都不执行 2 一致性 当事务完成的时候,必须确保数据是一致性的,不能部分完成部分失败 3 隔离性 每一个事务和事务之间是隔离的 4 持久性 一旦事务完成,无论发生了什么,结果都不会在收到影响了原创 2017-02-27 14:34:03 · 509 阅读 · 7 评论 -
【spring】事务管理之编程式事务
【spring】事务管理之编程式事务原创 2017-02-27 14:33:17 · 764 阅读 · 7 评论 -
spring概述
spring是一套框架,一个易于开发、便于测试且功能齐全的开发框架,他可以给我们带来如下的好处:1、方便解耦,简化开发。通过Spring提供的IOC容器,用户可以将对象之间的依赖关系交由spring进行控制,避免硬编码所造成的过度程序偶合。有了spring,用户不必再为单实例模式类、属性文件解析等这些底层的需要而编写代码,可以更加的专注于上层的应用。2、AOP编程的支持。通过Spring提供的AOP的功能,方便进行面向切面的编程,很多不容易用传统OOP实现的功能可以通过AOP轻松应对。。原创 2017-02-27 14:32:15 · 423 阅读 · 6 评论 -
spring配置文件详解--真的蛮详细
http://book.51cto.com/art/201004/193743.htm 转载地址 spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,ap转载 2016-12-21 21:43:01 · 594 阅读 · 19 评论 -
【spring】spring的父子容器
spring相当于父容器,springmvc相当于子容器。 1、在同一个容器中,可以任意访问对象 2、子容器可以访问父容器的对象 比如:control中可以注入到service中 3、父容器不能访问子容器的对象原创 2016-07-30 23:05:08 · 743 阅读 · 12 评论 -
【spring】spring单元测试报错
解决:使用是导入包的方案:junit.jar + hamcrest-core.jar + hamcrest-library.jar或者是:junit-dep.ajr+hancrest-all.jar这两种导入方法虽然尽量避免了导入重复的包,但使用时还是遇到了冲突。查看包中各类和文档后发现有些类(例如:断言is())同时出现在了org.hamcrest.Mathchers和org.hamcrest.core中,则在用到时候引入的时候需要注意。换成版本为4.8或者4.10的原创 2016-07-30 23:03:04 · 1495 阅读 · 14 评论