![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
Forget_G
记住 我不懒
展开
-
java volatile语义
volatile是用来保证可见性的。线程在执行过程中,所有的数据都保留在自己的本地内存中,各个线程的本地内存相互独立,互不影响。一般直到线程执行完毕后再写到主存。这样线程操作共享变量时,会有存在数据不一致问题,volatile就是为了让共享变量及时更新到主存中。volatile 不具有原子性,只是保证前一秒取出来的数据是最新的,但是对于后一秒别的线程修改了数据是没有办法的,对于count++...原创 2020-04-08 13:33:28 · 140 阅读 · 0 评论 -
java 树状层级生成
用于生成树状的层级结构根据情况设置获取id fid的方法买那个和setChildren方法名。默认的根节点为0,即传入的List数据必须包含id为0的数据,不然返回的是空list,或者自己设置默认的根节点。向下遍历时获取所有数据。向上只是一条树上的数据,即找该子节点的上级。上上级。。。。此时根节点为最下面的那条数据。public class MenuTreeUtils<T>...原创 2020-04-01 14:10:48 · 1003 阅读 · 0 评论 -
@Transational事务回滚不生效的原因
只能应用于public可见度的方法上,也可以直接在类上标注@Transational注解,将整个类纳入spring事务管理。默认情况下,不会对网络异常等uncheck异常进行回滚。 @Transational(rollbackFor = Exception.class)在service层使用try catch捕获了异常,此时@Transational无效,但是可以在cont...原创 2020-03-20 22:06:01 · 605 阅读 · 0 评论 -
java 中Serializable接口到底是干嘛的
标识作用:表明这是一个支持序列化的类当类不继承这个接口时无法被序列化。serialVersionUID:序列化Id其实就是一个验证,序列化前把这个验证写进去,反序列化的时候会比较这个id是否一致。一致就表明可以反序列化,反之报错。想知道更多的信息?传送门...原创 2020-03-20 21:53:08 · 240 阅读 · 0 评论 -
Java8--Lambda表达式
Java8—Lambda表达式(转载)Java 8 发布了lambda表达式,它将允许我们将行为传到函数里。也叫做函数式编程。其主要作用为代替匿名类(不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。匿名类的目的是在某个地方需要特殊的转载 2017-07-14 00:00:22 · 307 阅读 · 0 评论 -
java构建器
Java构建器构建复杂对象的方式。静态工厂和构造器都不能很好的构建大量的可选参数,当一个类创建时需要多个参数且不是所有参数都必须时,有以下解决方案:一惯采用充重叠构造器模式——在这种模式下,你提供第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个有两个可选参数,依次类推。缺点: 当有许多参数时,客户端的代码难写且难以阅读。通过JavaBeans模式创建无参的构造器,通过setter原创 2017-07-11 22:24:00 · 298 阅读 · 2 评论