Java synchronized原理总结
我觉得并不会比他写得好: 点击此处
JAVA集合的多种遍历方式总结
Collection 集合 : 总的来说分为以下这三类,这里更多的子类我便不在阐述了。 Set : 无序集合,元素不可重复; Queue : 队列; List : 有序集合,元素可以重复; Map集合 :一般用于保存拥有映射关系的数据,也就是 key-value 键值对,它也有很多子类,这里不细说; 本文以HashSet 为例,总结遍历方式。当然像List这种有序集合还可以通过for循环的方式遍历。 下面是主要内容: 一、使用 Lambda 表达式遍历集合从 JDK8 开始,Iterable 接口新增了 forEach(Consumer action)方法,主要 是使用 Lambda 表达式更加简洁的操作。Consumer 其实是一个函数式接 口,只要是函数式接口,都能够使用 Lambda 表示来进行替代。在调用这 个方法的时候,其实会依次将集合的元素传递给 Consumer 中的 accept(T t) 方法去处理。 12345678910111213141516/** * @author frosro * @data 21:34 */public class...
JAVA反射机制
JAVA反射机制介绍java反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能调用它的任意方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为反射机制 获取Class对象的两种方式123456789// 1.如果我们知道具体的类,可以使用下面的代码,[类名.class];但是通常情况下我们是不知道具体的类的,并且还需要导入类的包,依赖太强。Class targetClass = TargetObject.class;// 2.通过[Class.forName()]小括号中传入类的字符串路径获取,字符串可以写在配置文件中。Class targetClass = Class.forName("frosro.test.TargetObject");// 3.其实还有一种方法,继承自Object类的getClass方法,如下,但这样对象都已经存在了,我们再用反射就多此一举了。TargetObject targetObject = new TargetObject();Class targetClass = targ...
Dubbo 相关知识及使用(一)
12Dubbo官网地址:http://dubbo.apache.org官网有详细的文档可供学习,并且有中文的。 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 简单的描述一下调用关系: 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者在启动时,向注册中心订阅自己所需的服务。 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数 据给消费者。 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用 失败,再选另一台调用。 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。 Dubbo快速开发环境准备:1234567create database dubbo;CREATE TABLE `t_user` (...
CAS和Synchronized的区别
更多资源:https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md 一、CAS概念: CAS(Compare And Swap ) 或( Compare-and-Set )是乐观锁的一种实现方式,是一种轻量级锁。JAVA1.5开始引入了CAS,JUC下很多工具类都是基于CAS。 CAS的实现方式: CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。当多个线程同时尝试使用CAS更新一个变量时,任何时候只有一个线程可以更新成功,若更新失败,线程会重新进入循环再次进行尝试。 CAS带来的问题ABA问题 :ABA问题是指在CAS操作时,其他线程将变量值A改为了B,但是又被改回了A,等到本线程使用期望值A与当前变量进行比较时,发现变量A没有变,于是CAS就将A值进行了交换操作,但是实际上该值已经被其他线程改变过,这与乐观锁的设计思想不符合。ABA问题的解决思路是,每次变量更新的时候把变量的版本号加1,...
我的第一篇博文
我的个人博客算是建立了,中间遇到比较坑的就是,我想要使用java做分类,但总是报404,但是JAVA却可以,没找到原因;还有就是阿里云的域名真的是坑,提交了十几个实名认证还是没通过,太考验耐心了。markdown还不太会用,渐渐熟练吧,之后我会把遇到的好的经验分享到这个博客,其他教程什么的网上太多了,我就不在这上面添加了,我只写我认为有价值的博文,如果哪位同学有问题或者想要和我在技术上交流,可以联系我,我会非常乐意分享我所知道的信息。大家一起学习,共同进步为社会主义做贡献!


