(不常用) 5. 使用redis的setnx()、expire()方法,用于分布式锁。 6....使用redis的setnx()、get()、getset()方法,用于分布式锁。 7. 使用redis的watch、multi、exec命令,用于分布式锁。(不常用) 8....使用zookeeper,用于分布式锁。(不常用) 第三步,基于数据库资源表做乐观锁,用于分布式锁: 1....对于另外那三种方案,我会在下一篇关于分布式锁的文章中,和大家再探讨一下。 常用的四种方案: 1. 基于数据库表做乐观锁,用于分布式锁。 2....使用redis的setnx()、get()、getset()方法,用于分布式锁。 不常用但是可以用于技术方案探讨的: 1.
Partition tolerance 分区容错性) BASE 基本可用(Basically Available) 软状态(Soft State) 最终一致(Eventually Consistent) 分布式一致性协议
第一部分 Java分布式通讯的方式 1.基于消息方式实现系统间通讯 a.数据传输部分 : TCP/IP 、UDP/IP TCP(端口号为23)与UDP(端口号为53)的区别 TCP面向连接(如打电话要先拨号建立连接...BIO、NIO、AIO 同步阻塞BIO: 连接线程 (缓存、自己处理) 同步非阻塞NIO:请求线程(立即、自己处理) 异步非阻塞AIO:有效请求线程(立即、委托OS) 同步 vs 异步 同步:JAVA...2基于远程调用方式实现系统间通讯 RPC:采用C/S方式,跨语言跨平台 webservice:请求应答机制,跨系统跨平台 RMI: 降低客户端与服务器的耦合性,java远程接口调用;跨虚拟机 JMS:JAVA
使用c++多数是为了兼顾效率和面向对象,而java语言则照顾到网络开发、网站开发、分布式、android开发等很多方面。另外,合格的java工程要比c++工程师多很多。...但是对于我来说,学习java的根本动力就是分布式开发,特别是apache下面的hadoop、hdfs、hbase,这些基本是分布式开发的标配。...4、常用的java工具 常用的命令工具主要有javac、jar、java、javadoc、javap、jdb。javac是编译工具,它既可以编译单个文件,也可以编译多个文件。...javac hello.java & java hello,这样可以运行起来了。主要执行的时候是java hello,而不是java hello.class。...等等,好一点的培训机构还说带一点hadoop、hdfs、hbase这些内容;e、等到上面的知识点都学完了,一般都会开始进行项目实战了,比如网上商城、爬虫、分布式监控、android开发等等。
二分查找 public static int binarySearch(int[] arr,int key) 案例: 把字符串中的字符进行排序 基本类型包装类(掌握) 为了让我们对基本类型进行更多的操作,java
但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作机器人各种动作的方法。...其实,这些Java类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为Xxx Robot API。本章涉及的Java API指的就是JDK中提供的各种功能的Java类。...成员变量 // 标准输入流,常用于键盘录入 public final static InputStream in = null // 标准输出流,常用于打印信息 public final static...在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用Object类的finalize()方法。...exit() 终止当前正在运行的 Java 虚拟机。
Java常用API 1....StringBuffer 1.1 StringBuffer概述 为了解决String字符串操作导致的内存冗余,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串...创建对应的Date对象,时间戳是从1970-01-01 00:00:00 GMT tips: 中国采用的东八区时间 1970-01-01 08:00:00 常用方法...public static Calender getInstance(); 默认当前系统时区的Calender对象 常用方法: public int get(int field)...类对象,数组,字符串 Java中万物皆对象,Java中提供了包装类,让基本类型也可以当做类对象来处理。
Java 常用类 记录一些Java 学习使用, 经常使用类进行总结… 这个文章感觉还是很有必要的 后面会常总结扩展… String字符串相关的类 String Java.lang包 Java中字符串被称作为...value[]中的 实现了 序列化 Comparable比较器 CharSequence 接口 String对象的创建: 子面量定义方式; String s = "Hello World"; 就是我们常用的方式...常用方法: long getTime( ) 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。...这可能被用来记录应用程序中的事件时间戳 常用方法 方法 描述 now() 静态方法,返回默认UTC时区的Instant类的对象 UTC即本初子午线的时间......新增了很多的日期API 其实常用的也就以上… Java8之前的其实还有很多人使用,JDK是向下兼容的,所以不必担心 但,8听说效率还挺高,而且确实挺方便的… JDK8其它API System Java
# Java 常用类 # 包装类 # 包装类的分类 针对八种基本数据类型相应的引用类型-包装类 有了类的特点,就可以调用类中的方法 如图: # 包装类和基本数据的转换 演示包装类和基本数据类型的相互转换...Integer i3 = new Integer(str4);//构造器 System.out.println("ok"); } } # Integer 类和 Character 类的常用方法...StringBuilder的方法 没有做互斥处理 StringBuilder stringBuilder = new StringBuilder(); } } # StringBuilder 常用方法...; import java.text.SimpleDateFormat; import java.util.Date; import java.util.SimpleTimeZone; public...; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class LocalDate_
集合:长度可以自动的扩展,存储的类型可以不限定(这点不太安全) JAVA的集合框架中有两个基本的集合接口,一个是Collection,还一个是Map Collection接口有比较实用的实现方式:有序列表...的子接口 Map:键值对,根据键值K取V,键值K是唯一的 优势:增强for循环能不需要定义下标i,简洁方便,无序的集合页可以读取 由于增强循环比较简洁,不需要按位置读取,所以不知道当前元素的位置 JAVA...Set中存储Employee Employee需正确实现equals和HashCode List中包含操作contains 等都是需要实现实现equals和HashCode Collections 常用的方法...多线程的实现方法 在Java中实现线程有两种方式: 1.继承Thread类 从Thread类中实例化的对象即代表线程,启动一个线程就是建立一个Thread实例。...线程通信常用方法 sleep();----强制正在执行的线程休眠(暂停执行),单位是毫秒(不释放资源)。 注意:线程睡眠到期自动苏醒,并返回到可运行的状态。
javaEE"; // s4:常量 String s5 = s4 + "hadoop"; System.out.println(s1 == s5); // true } 五、常用方法...//称为时间戳 System.out.println(time); 二、java.util.Date 类与 java.sql.Date 类 java.util.Date类 |---java.sql.Date...Calendar calendar = Calendar.getInstance(); // System.out.println(calendar); //2 常用方法...它只是简单的表示自 1970 年 1 月 1 日 0 时 0 秒(UTC 开始的秒数) ② 类似于 java.util.Date 类 二、常用方法 image.png 六、时间日期格式化类:DateTimeFormatter...一、说明 ① 格式化或解析日期、时间 ② 类似于 SimpleDateFormat 二、常用方法 ① 实例化方式: 预定义的标准格式,如:ISO_LOCAL_DATE_TIME; ISO_LOCAL_DATE
@Mapper注解是由Mybatis框架中定义的一个描述数据层接口(dao)的注解,注解往往起到的都是一个描述性作用,用于告诉spring框架此接口的实现类由M...
,紧密的联接,动态的联接,广播通知式的联接等 什么是 JAVA 分布式应用?...远程调用实现系统间的通信:通过调用本地的java接口的方法来透明的调用远程java的实现。具体的细节有框架来实现。...TCP/IP 异步通信: JAVA NIO 通道技术实现。...JAVA 分布式知识体系介绍 附上某 JAVA 分布式学习目录,帮助了解分布式都有哪些东西 第 1 章 分布式 Java应用 1.1 基于消息方式实现系统间的通信 1.1.1 基于 Java...1.2.2 基于开源框架实现远程调用方式的系统间通信 第 2 章 大型分布式 Java应用与 SOA 2.1 基于 SCA实现 SOA平台 2.2 基于 ESB实现 SOA平台 2.3
java 常用注解 1.0控制台常用: 1.1.1 @Controller ,@RestController @ResponseBody, @RequestMapping 用@Controller定义一个控制器类...1.1.5 @mapper mybatis支持的映射方式有基于xml的mapper.xml文件、基于java的使用Mapper接口class。...扩展: 常用参数 value:指定需要扫描的包 @ComponentScan({ “xxx.xxx.xxx.controller”, “xxx.xxx.xxx.service”}) basePackages...对于Shiro权限经常用到的5个注解的详细介绍: 2.1.1 RequiresAuthentication 使用该注解标注的类,实例,方法在访问或调用时,当前Subject必须在当前session中已经过认证...= SaveAction.class) 未了解相关知识; 参考:https://blog.csdn.net/huangshanchun/article/details/58226874 4.0 其他常用
Java学习笔记——Java常用类 文章目录 Java学习笔记——Java常用类 1 字符串 1.1 String 1.1.1 内存 1.1.2 常用方法 1.1.3 类型转换 1.1.4 几个小算法...1.2 StringBuffer 1.3 StringBuilder 2 日期相关 2.1 java.lang.System 2.2 java.util.Date 2.3 java.text.SimpleDateFormat...@jls3.10.5 String Literals 1.1.2 常用方法 /* * public int length() public char charAt(int index):返回在指定...常用方法: abs 绝对值 acos,asin,atan,cos,sin,tan 三角函数 sqrt 平方根 pow(double a,doble b) a的b次幂 log 自然对数 exp e为底指数...(bd.divide(bd2,RoundingMode.HALF_UP)); System.out.println(bd.divide(bd2,15,RoundingMode.HALF_UP)); 常用方法
二、分布式系统常用技术和应用场景 consistent hashing [with virtual node]:一致性哈希,数据分布 vector clock:时钟向量,多版本数据修改 Quorum...一致性hash算法最常用于分布式cache中,比如注意的memcached。...2PC、3PC、Paxos协议: 分布式事务的解决方案 分布式事务很难做,所以除非必要,一般来说都是采用最终一致性来规避分布式事务。...目前底层NoSQL存储系统实现分布式事务的只有Google的系统,它在Bigtable之上用Java语言开发了一个系统 Megastore,实现了两阶段锁,并通过Chubby来避免两阶段锁协调者宕机带来的问题...Paxos的分布式民主选举方式,除了保证数据变更的一致性之外,还常用于单点切换,比如Master选举。
Java分布式锁 我的理解应该叫集群锁或者跨实例锁 锁的作用是在多线程情况下,控制线程同步访问变量,执行代码块、方法, 例如synchronized,在单个jvm进程中,这样是奏效的。...对synchronized不太了解的话可以看下这里: 对于Java中synchronized关键字的简单理解 为了应对这种场景,分布式锁就出现了。...线程ID是为了实现锁的可重入性,什么是可重入: Java多线程-01.ReentrantLock、ReadWriteLock 依赖数据库需要一定的资源开销,性能问题需要考虑。...基于Redis的分布式锁 基于Redis的优点: 1、Redis有着很高的性能; 2、Redis的方法对于实现分布式锁有着较好的支持; 实现方式是: 获取锁的时候,使用setnx加锁, setnx...参考文章: 刘清政的博客:什么是分布式锁?
现在 Java 17 和 Java 11 基本上可以和 Java8 平分 JDK 装机比例。下面是我常用的一些 Strem API 操作。...除了分组、转换、排序,如果大家还有更多常用的 API 可以一起留言交流。...StreamItem(2, "k2")).collect(Collectors.toMap(StreamItem::getKey, Function.identity())); //如果 key 重复报: java.lang.IllegalStateException.../输出: [StreamItem{id=3, key='k1', name='i_3|k_k1'}, StreamItem{id=2, key='k2', name='i_2|k_k2'}] 其他常用
Synchronized public String synchronizedFormat(Date date) { return format.format(date); } 相当于 private final java.lang.Object...$lock = new java.lang.Object[0]; private DateFormat format = new SimpleDateFormat("MM-dd-YYYY"); public
自行复习:spring事务的传播机制(spring事务面试必问) 1.2 什么是分布式事务 分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,且属于不同的应用...1.3.2 单一服务多数据库的分布式事务 最早的分布式事务应用架构很简单,不涉及服务间的访问调用,仅仅是服务内操作涉及到对多个数据库资源的访问。...下图反映了这样一个跨越多个服务的分布式事务: 1.3.4 多服务多数据源的分布式事务 如果将上面这两种场景(一个服务可以调用多个数据库资源,也可以调用其他服务)结合在一起,对此进行延伸,整个分布式事务的参与者将会组成如下图所示的树形拓扑结构...不依赖事务协调器对分布式事务的支持,而是通过对业务逻辑的分解来实现分布式事务。...Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。
领取专属 10元无门槛券
手把手带您无忧上云