Java基础知识
一些Java编程时的小技巧。
西土城fe
这个作者很懒,什么都没留下…
展开
-
设计一个RPC框架
一个基本的RPC框架的设计方案原创 2023-05-12 10:32:19 · 276 阅读 · 1 评论 -
缓存与数据库一致性
大致分成四种情况。原创 2023-05-11 20:10:59 · 489 阅读 · 0 评论 -
Java死锁
什么是死锁、死锁的必要条件、如何预防死锁、如何检测死锁。原创 2023-03-05 10:07:46 · 433 阅读 · 0 评论 -
Java反射常用命令
反射使用原创 2022-11-20 20:16:27 · 174 阅读 · 0 评论 -
Java集合做栈的性能比较
输出:在数据插入删除多的情况下LinkedList较快;原创 2022-10-28 15:26:36 · 614 阅读 · 0 评论 -
Java提供的网络支持
URL 地址里包含中文时,关键字就会变成所谓的"乱码"—— application/x-www-form-urlencoded MIMF 字符串。URL格式:protocol://host:port/resourceName 如:http://www.baidu.com。URL(Uniform Resource Locator):统一资源定位器,包含一个可打开到达该资源的输入流,URI的特例。的类,他还有两个子类:Inet4Address(IPV4)、Inet6Address(IPV6)。原创 2022-10-08 21:25:30 · 265 阅读 · 0 评论 -
Java 常用注解
Inherited:子类可以继承父类中的该注解,如果某个类使用 @XXX 注解,其子类将自动继承 @XXX。@Deprecated:标识某个程序元素(类、方法等)已过时,当其他程序使用时编译器会给出警告。@Target:指定被修饰的 Annotation 能用于哪些程序单元。@Override:强制一个子类必须覆盖父类的方法(只能修饰方法)。@Documented:该注解将被包含在 javadoc 中。@Retention:注解的保留位置。原创 2022-10-06 21:26:12 · 204 阅读 · 0 评论 -
自定义Annotation
使用自定义的Annotation。原创 2022-10-06 19:03:52 · 104 阅读 · 0 评论 -
@FunctionalInterface
Java8函数式接口:接口中只有一个抽象方法(可以包含多个默认方法或者多个static方法),Java允许使用 Lambda 表达式创建函数式接口的实例。@FunctionalInterface 用来指定某个接口必须是函数式接口。如果再增加一个抽象方法 func4(),就会编译出错。原创 2022-10-06 18:00:17 · 151 阅读 · 0 评论 -
Java深入数组
一旦数组的初始化完成,数组在内存中所占用的空间将被固定下来,即数组的长度不可改变。Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组,这个Arrays类里包含了如下几个static修饰的方法(static修饰的方法可以直接通过类名调用)。当使用foreach循环迭代访问数组时,foreach中的循环变量相当于一个临时变量,系统会把数组元素依次赋值给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。数组是一种引用数据类型,数组引用变量只是一个引用,原创 2022-09-21 21:25:55 · 275 阅读 · 0 评论 -
Java学习路线(个人学习总结)
框架:Spring,SpringMVC,Mybatis,SSM,MybatisPlus(*)分布式:Nginx,Zookeeper,Dubbo,nacos(*)数据库:MySQL,JDBC,Redis,MongDB(*)容器:Linux,Docker,kubernetes(*)计算机网络,设计模式,JVM,多线程,netty。中间件:kafka,ActiveMQ(提升效率:Maven,Git(*)微服务:SpringCloud。(*)选学,可以后面用到再学。性能测试:JMeter(*)......原创 2022-09-01 10:14:24 · 694 阅读 · 1 评论 -
Java常见ID生成方式比较
对于workerID的分配,当服务集群数量较小的情况下,完全可以手动配置。Leaf-segment方案可以生成趋势递增的ID,同时ID号是可计算的,不适用于订单ID生成场景,比如竞对在两天中午12点分别下单,通过订单id号相减就能大致计算出公司一天的订单量,这个是不能忍受的。在单体架构环境下UUID或者auto_increment即可满足,保证ID的全局唯一,随着业务的发展,分布式微服务架构,导致UUID或者auto_increment不能保证全局的唯一,这就带来了需要生成全局唯一的分布式ID的需求。...原创 2022-08-05 14:59:41 · 3577 阅读 · 0 评论 -
ID生成方式Java——雪花算法
12 bit 可以代表的最大正整数是 2 ^ 12 - 1 = 4095,也就是说可以用这个 12 bit 代表的数字来区分同一个毫秒内的 4096 个不同的 id。但是 10 bit 里 5 个 bit 代表机房 id,5 个 bit 代表机器 id。这 64个bit中,其中1个bit是不用的,然后用其中的41bit作为毫秒数,用10bit 作为工作机器 id,12bit作为序列号。因为二进制里第一个 bit 为如果是 1,那么都是负数,但是我们生成的 id 都是正数,所以第一个 bit 统一都是 0。.转载 2022-08-05 11:00:48 · 10150 阅读 · 0 评论 -
Java子集、组合、排列
给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。内存消耗41.5MB,在所有Java提交中击败了77.48%的用户。执行用时2ms,在所有Java提交中击败了94.12%的用户。通过测试用例171/171。...............原创 2022-07-25 16:44:32 · 225 阅读 · 0 评论 -
Java快速排序
快速排序是不稳定排序;使用“while双指针” 和 ”for“两种方法让数组分成两部分;原创 2022-07-24 21:19:51 · 154 阅读 · 0 评论 -
Java归并排序
内存消耗50.7MB,在所有Java提交中击败了44.35%的用户。执行用时10ms,在所有Java提交中击败了83.18%的用户。leetcode_912排序数组。通过测试用例13/13。原创 2022-07-23 15:20:54 · 93 阅读 · 0 评论 -
Java位运算小技巧
1、根据 与运算 定义,设二进制数字 n ,则有: 若 n&1=0 ,则 n 二进制 最右一位 为 0 ; 若 n&1=1 ,则 n 二进制 最右一位 为 1 。2、">>>"无符号右移操作规则:无论正负数,前面补零。">>"右移操作规则:正数前面补零,负数前面补1"......原创 2022-07-02 21:20:48 · 242 阅读 · 0 评论 -
Java随机生成数组进行测试
随机生成 [0,8000000] 范围内数字的数组;原创 2022-06-20 15:42:57 · 135 阅读 · 0 评论 -
Java二分搜索模板
1、查找一个数int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + (right - left) >> 1; if (nums[mid] < target) { left = mid + 1; }原创 2022-04-13 17:01:39 · 416 阅读 · 0 评论