随笔分类 -  Java常见性问题归纳

Java全局唯一ID生成策略
摘要:在分布式系统中常会需要生成系统唯一ID,生成ID有很多方法,根据不同的生成策略,以满足不同的场景、需求以及性能要求。 ### 1、数据库自增序列 这是最常见的一种方式,利用DB来生成全库唯一ID。 **优点:** - 此方法使用数据库原有的功能,所以相对简单 - 能够保证唯一性 - 能够保证递增性
3775
0
0
Java使用不同方式优雅拆分业务逻辑
摘要:如何处理复杂的业务逻辑 在实际的业务开发当中,经常会遇到复杂的业务逻辑,可能实现出来的代码并没有什么问题,但是代码的可读性很差。 那么在实际开发中如何避免大面积的 if-else 代码块的问题? 补充说明一点,不是说 if-else 不好,而是多层嵌套的 if-else 导致代码可读性差、维护成本高
1449
0
0
Java获取客户端请求信息
摘要:客户端工具类 /** * 客户端工具类 * * @author hviger */ public class ServletUtils { /** * 获取String参数 */ public static String getParameter(String name) { return getR
128
0
0
Java反射机制原理详解
摘要:什么是反射? Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。 Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动
2566
0
0
Java接口如何动态返回指定的对象字段属性
摘要:经常遇到的问题 在实际得开发过程中,我们经常会遇到以下场景,我们后端请求某个接口后获取到得数据,不希望将所有字段都返回给前端,那么我们需要封装,或者过滤一些不必要得字段后返回给前端。 不完美的解决方案 使用 Jackson 字段动态过滤 @JsonIgnore用于忽略序列化和反序列化中使用的逻辑属性
3228
1
0
Java调用第三方http接口的方式
摘要:Java调用第三方http接口的方式 通过JDK网络类Java.net.HttpURLConnection; 通过common封装好的HttpClient; 通过Apache封装好的CloseableHttpClient; 通过SpringBoot-RestTemplate; 通过okhttp 通过
488
0
0
Lambda表达式常见用法
摘要:Lambda介绍 Lambda,别名函数式编程 函数式编程是一种编程范式。它把计算当成是数学函数的求值,从而避免改变状态和使用可变数据。它是一种声明式的编程范式,通过表达式和声明而不是语句来编程。 Lambda表达式的优缺点 优点: 代码简洁,开发迅速,方便函数式编程 非常容易进行并行计算,尤其适用
237
0
0
Java 值传递和引用传递
摘要:基本数据类型 基本数据类型 大小 封装类 值范围 说明 byte 1字节(8位) Byte -128~127 主要用于节省内存空间,尤其是在处理大量数据时。 short 2字节(16位) Short -32768~32767 与byte相似,short也用于节省存储空间。 int 4字节(32位)
2
0
0
Mysql 分表分库的策略
摘要:为什么要分表? 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。 分表的目的就在于此,减小数据库的负担,缩短查询时间。 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时
575
0
0
Java中的栈、堆和常量池
摘要:Java程序是运行在JVM(Java虚拟机)上的,因此Java的内存分配是在JVM中进行的,JVM是内存分配的基础和前提。 Java程序的运行会涉及以下的内存区域: 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆
102
0
0
Java序列化和反序列化
摘要:序列化和反序列化 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 什么时候需要用到序列化和反序列化呢? 当我们只在本地JVM里运行下Java实例, 这个时候是不需要什么序列化和反序列化的, 但当我们需要将内存中的对象持久化到磁盘, 数据
168
0
0
JDK各个版本汇总
摘要:JDK1.4 正则表达式,异常链,NIO,日志类,XML解析器,XLST转换器 JDK1.5 自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环 JDK1.6 提供动态语言支持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载 JDK1.7 提供GI收集器、加强对非J
2383
0
0
高并发之性能、可用性和可扩展性
摘要:在提升系统性能方面我们一直关注的是系统的查询性能,通过数据库的分布式改造,各类缓存的原理和使用技巧。究其原因在于我们遇到的大部分场景都是读多写少,尤其是在一个系统的初级阶段。 高并发写请求的场景,其中秒杀抢购就是最典型的场景。 假设你的商城策划了一期秒杀活动,活动在第五天的 00:00 开始,仅限前
117
0
0
接口保证幂等性该如何实现?
摘要:幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。 要做到幂等性,从接口设计上来说不设计任何非幂等的操作即可。 例如很常见的支付下单等场景,由于分布式环境中网络的复杂性,用户误操作,网络抖动,消息重复,服务超时导致业务自动重试等等各种情况都可能会使线上数据产生了不一致,造成生产事故
77
0
0
Nginx反向代理和负载均衡
摘要:Nginx的作用 保护和隐藏原始资源服务器 负载均衡 最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。) 负载均衡旨在优化资源使用,最大化吞吐量,最小化响应时间。将用户请求分配给多个服务器。 https通信nginx反向代理443端口
140
0
0
高并发之缓存、限流和降级。
摘要:架构之高并发:缓存 缓存在高并发系统中有者极其广阔的应用,需要重点掌握。 随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,应用服务器和数据库服务器所做的计算也越来越多。 但是应用服务器资源是有限的,数据库每秒能接受的请求次数也是有限的(或者文件的读写也是有限的)。 如何能够有效利用有限
477
0
0
Java中final用法与详解
摘要:final作为Java中经常用到的关键字,了解final的使用方法是非常有必要的。 这里从final关键字在数据域、方法和类中三个方面分析final关键字的主要用法。 final应用于基本数据类型 1、对于基本数据类型使用final,它就是一个常量,数值恒定不变。 2、一个既是static又是fin
1638
0
0
Java集合框架总结图
摘要:Collection 接口的接口(对象集合) ├——-List 接口:元素都有索引,可以重复,有序(迭代器顺序)。 │—————-├ LinkedList 接口实现类, 双向链表, 查询慢,增删快,效率高, 没有同步, 线程不安全 │—————-├ ArrayList 接口实现类, 数组, 查询快,
104
0
0
Java中字符串去除空格
摘要:1. str.trim(); 去掉首尾空格 2. str.replace(" ", ""); 去掉所有空格,包括首尾、中间 String str = " hell o "; String str2 = str.replaceAll(" ", ""); System.out.println(str2)
1483
0
0
关于java按位操作运算
摘要:<1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15: 15 的原码: 00000000 00000000 00000000 00001111 补码: 11111111 11111111 11111111 11110000 +1 = -15的原码:11111111
696
0
0
深色
回顶
收起
点击右上角即可分享
微信分享提示