java
再等三分钟
这个作者很懒,什么都没留下…
展开
-
Mybatis自动生成主键
在代码中有两步操作,且是事务操作:1.保存数据库2.获取主键id关联到另一张表里。@Transactional(rollbackFor = Exception.class)public void save(){ Person person = new Person(); person.setName("test"); personDao.insert(per...原创 2020-04-10 11:40:43 · 551 阅读 · 0 评论 -
java中的与、或和与或操作
页面上是checkbox,多选会把所选的值用逗号分隔存到数据库中,这样如果其他接口调用判断所传进来的值是否符合checkbo选中的值,如果在CheckBox选中的值是1,2,那么数据库中存储的就是1,2,其他接口传进来一个值1,如果要判断传进来的值1时候在1,2中,那么mysql要用like,进行判断,此外,还有可能出现,如果数据库中存储的是1,2,11,这样判断的结果也是不准确的。 那么这原创 2017-03-30 11:50:33 · 30686 阅读 · 2 评论 -
Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002
今天遇到的 问题1:Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002新下载一个model项目,别的机器上都可以运行,我这里不行,报上面的错误。1、win+r 输入 regedit 找到下面的文件 HKEY_CURRENT_USER \Softwar\JavaSoft\Prefs,修改权限为...原创 2018-04-13 16:03:32 · 7769 阅读 · 3 评论 -
java 参数final类型
今天看到别人写的接口中参数又很多都是final类型,final就是不可改变的意思,那么接口参数的类型为什么要设置为final呢,首先涉及到java的参数是值传递还是地址传递,基本类型例如int都是值传递,这个不用多说。那么参数在传递的时候是值传递还是地址传递,写了个接口测试一下。 Person person = new Person(); person.setAge(11); pe...原创 2018-05-10 19:21:06 · 1572 阅读 · 0 评论 -
ImmutableMap
今天看代码发现很多地方都用到ImmutableMap。 ImmutableMap.of("id", record.getId(), "force",force)源码如下:public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2) {return RegularImmutableMap.fromEntr...原创 2018-04-26 19:34:19 · 4299 阅读 · 0 评论 -
JSON 书写格式
使用中,json有以下三种结构:对象:{"name":"Michael","age":24}数组:比如:[{"name":"Michael","age":24},{"name":"Tom","age":25}]值:{"name":"Michael", "birthday"转载 2018-04-26 19:40:31 · 960 阅读 · 0 评论 -
Spring项目启动IDea JavaCompiler中没有1.8
新从git中拉下来的项目,运行是报错。项目中Java版本不一致,可以查看项目中的jdk配置 。1.File ->Project Structure->Project Settings ->Project 查看项目使用的JDK版本2.根据别人的文章需要改一下项目使用的JDK即可。File ->Project Structure->Project Settings -&g...原创 2018-05-11 14:18:33 · 12399 阅读 · 4 评论 -
String.trim()源码解析
public String trim() { int len = value.length; int st = 0; char[] val = value; /* avoid getfield opcode */ while ((st < len) && (val[st] <= ' ')) { st++; ...原创 2018-04-27 11:05:55 · 985 阅读 · 0 评论 -
CompletableFuture
要说CompletableFuture,就要先知道Future接口。Future是Java5中添加的类,用来描述一个异步计算的结果。你可以轮询isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,但是这个get()方法会阻塞住调用线程,这种阻塞的方式显然和我们的异步编程的初衷相违背。你也可以使用cancel方法停止任务的执行。Java 5并发包主要聚焦于异步任务处理...转载 2018-04-27 18:21:02 · 239 阅读 · 0 评论 -
StringBuffer和StringBuilder
1.首先先说String,String是一个不可改变的类。当想要改变String实例时,只能重新new一个新的实例,String中是没有append等修改操作的。String是一个final类,即是不可改变的。在《thinking in java》书中> ,**说如果整个类都是final的,就表名自己不希望从这个类继承,或者不允许其他任何人采取这种操作,换言之,处于这样活那样的原因,我们的类肯定不需原创 2016-10-06 11:51:34 · 260 阅读 · 0 评论 -
JAVA反序列化安全实例解析
什么是序列化序列化 (Serialization)是指将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。简单来说:序列化: 将数据结构或对象转换成二进制串的过程。反序列化:将在序列化过程中所生成的二进制串转换成数据结构转载 2016-11-04 15:20:10 · 1031 阅读 · 0 评论 -
Java中的序列化
当java要想流中写数据时,需要将对象进行序列化。当你将抽象父类标注为可序列化时,所有它的子类也将能够被序列化,Serializable接口没有包含任何方法的定义。没有任何方法的接口被称为标记式接口。为某种特定用途,开发者可以创建标记式接口以显示地标记一个类。你必须显示的指定一个类有能力被序列化。Serializable标记被设计作为一种安全机制--------------出于安全考虑,你原创 2016-09-26 19:41:30 · 347 阅读 · 0 评论 -
java中的事物
java中的事物处理:如果对数据库进行多次操作,每一次的执行或步骤都是一个事务,如果数据库操作在某一步没有执行或者出现异常而导致事务失败,这样有的事务被执行,有的就没有执行,从而就有了事务的回滚,取消先前的操作。什么是事务?事务是访问数据库的一个操作序列。数据库应用系统通过事务集来完成对数据库的存取,事务的正确执行使得数据库从一种状态转换为另一种状态。事务必须服从ISO/IEC原创 2016-09-19 14:33:52 · 679 阅读 · 0 评论 -
@Transactional
@Transactional(1)可以标注在类和方法上,也可以标注的定义的接口和接口方法上。(2)若在接口上标注@Transactional注解,会留下这样的隐患:因为注解不能被继承,所以业务接口中标注的@Transactional注解会被业务实现类继承,所以可能会出现不启动事务的情况,所以Spring建议我们将@Transaction注解在是实现类上。(3)在方法上的@Tra原创 2016-09-19 14:54:25 · 1065 阅读 · 0 评论 -
null值与‘’的区别
空值(‘ ’)是不占用空间的Null其实是占用空间的在进行count统计某列的记录数的时候,如果采用的NUll值,系统会自动忽略,但空值会计算其中的。String s = nullstring.trim就会抛出为空的exceptionString s = " "string.trim()就不会抛异常NULL代表声明了一个空对象,根本就不是一个字符串" "代表原创 2016-09-20 14:58:50 · 392 阅读 · 0 评论 -
java中变量问题
在修改bug时,说是函数的参数最好不要在函数内部重新使用。上满调用函数后输出foo.add是42,但a的值仍然是40,有些疑惑?解决:在调用时,a的内存分配在堆中,首先是a = a +b入栈,在栈中新建a变量,等号后面a的值是从堆中调用,计算后把值42放在栈中,所有foo.add返回时42,因为a是基本类型,所以a = a + b不会改变堆内存中a的值,a的值仍然是40.如果说上面的参数a是一原创 2016-10-10 10:33:35 · 311 阅读 · 0 评论 -
java中Serializable问题
如果一个类是Seriabliazble的,那么里面的属性域必须也是可Seriabliazble的或者思transient的,即便这个类不需要序列化或者反序列化,因为在加载的时候,大部分j2EE应用框架都会把对象flush到磁盘上,而一个可以序列化的对象却有一个成员是不能序列化的,也不是暂时的,那么就会造成程序crash。所以上面的Address要么把Address类设置为Seriablazbl原创 2016-10-10 11:18:30 · 418 阅读 · 0 评论 -
java中String基础
一个面向对象系统首先关注的是行为,面向对象的核心概念是对象之间相互发送消息,从而影响行为,一个对象发送消息给另外一个对象,告诉它去做某些事情,举一个客观世界的例子,我发送一个消息给你,让你去锁上门,在一个面向对象系统中,一个安全对象发送一条消息给一个门禁控制对象,告诉它把所控制的门置于安全状态。(1)java中有些包是不需要引入,因为会自动引入,String类是java.lang包中的原创 2016-09-26 17:36:57 · 295 阅读 · 0 评论 -
java中的对象和枚举
对象是行为(java中的方法实现)和属性(java中成员变量)的组合。属性和对象本身有着相同的声明周期,在任何给定的时间点,对象有着特定的状态,状态是类的全部实例变量所组合而成的快照,因为这个原因,实例变量有时候也被称为状态变量。 行为方法操作或者改变对象的属性,换句话说,行为方法可以改变对象的状态,查询方法返回对象的某个片断。 把方法设计成:要么改变对象的状态,要么返回信息,不要两件原创 2016-09-26 18:42:04 · 1309 阅读 · 0 评论 -
java中的包装类和异常
基本类型不是对象------没有从类java.lang.Object继承,接口java.util.List只提供以引用类型为参数的方法add,基本类型不能重载add方法。为了能够将对象作为异常抛出,该对象必须是Throwable类型,类Throwable定义在包java.lang中,位于异常层次关系 最顶部,Throwable有两个子类:Error和Exception,检查异常原创 2016-09-26 19:13:46 · 1813 阅读 · 0 评论 -
list!=null和list.size()>0
1.list==null,意味着list压根没有地址,在堆内就不存在。 2.list.size()=0 意思堆内有list但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。 3.list如果为null的话,说明没有进行初始化。这是list调用任何的方法都会抛出空异常。list.size()==0说明list已经被new过,但是里面没有值。 4.区别: ①有没有瓶子 li转载 2016-09-18 16:24:12 · 2070 阅读 · 0 评论