JAVA SE
文章平均质量分 69
JAVA SE
蛋炒喜红柿
这个作者很懒,什么都没留下…
展开
-
【this关键字】
private void setName(String name){ this.name = name;}上面的代码很简单,java类中普通的set方法。但是其中的this的用法有很少需要注意的地方。首先指明this在这里代表的是什么?在Java语言中规定使用this来代表本类对象的引用。this关键词被隐式地用于引用对象的变量和方法。如开头的代码中,this.name指的就是Book类中name的成员变量,而this.name = name 中第二个name则指的是形参name。实际上setN原创 2022-05-31 01:36:10 · 298 阅读 · 1 评论 -
【用户角色权限设计】
用户角色权限设计结构:用户表,用户角色关联表,角色表,角色菜单关联表,菜单表,角色权限关联表,权限表,员工表,员工角色关联表这几张表涵盖了用户体系,角色体系,和权限体系以及菜单体系。...原创 2022-05-12 17:57:03 · 3538 阅读 · 0 评论 -
【获取唯一编号】
最近遇到一个问题在这里和大家分享一下:目前在做仓库管理系统,在系统中遇到了很多的编号问题。如货件编号,入库编号,出库编号,清点编号,发货编号等等。这些编号都是按照相似的规则生成的,如货件编号就是"HJ"+8位日期数+4位随机数,入库编号就是“RK”+8位日期数+4位随机数。都是这样的规律。并且要求要具有唯一性。在这样的情况下,雪花算法和uuid之类之前比较常用一些方法都无法使用了。最开始想到的是利用加锁在实现://伪代码加锁{ //1.获取日期 //2.获取随机数 //3.循环判随机数在数据原创 2022-05-12 17:47:46 · 837 阅读 · 0 评论 -
【Builder设计模式】
1. 简介最近在做IM系统的sdk, 要求也是非常的简单,要求sdk简单易用。简单的要求实现起来可没有那么简单。这里就先说一下,其中遇到的一个难题:系统中对象的创建?在sdk中对象的创建需要精细到每一个属性上,不同于接口可以直接在接口文档中写明传输对象需要传输的字段内容即可,在sdk中不仅仅要写明每一个要传输的对象的字段内容,还需要对每个对象的属性进行验证。在web应用中,比如IM的服务端中采用的是Jsr303来对传输的对象进行验证。但是sdk只需要采用最基本的Java中的知识点即可,要求就是轻原创 2022-03-29 11:21:44 · 4388 阅读 · 0 评论 -
【国密简介】
1. 国密算法介绍国密算法,即国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的,不涉及国家秘密的密码技术。商用密码又很多,作为一览,我整理出下表,列举了常用的国际跟国产商密。下面逐个介绍国密算法:1.1 SM1是一种分组加密算法对称加密算法中的分组加密算法,其分组长度,密钥长度都是128bit,算法安全保密强度跟AES相当,但是算法不公开,仅以IP核的形式存在于芯片中,需要通过加密原创 2022-03-09 15:20:39 · 3580 阅读 · 0 评论 -
【凯撒密码】
目录1. 介绍2. Java实现3. 凯撒密码的破解3.1 暴力破解3.2 频率分析法1. 介绍凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行了,它的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如当偏移量是3的时候,所有的字母A将被替换成D,B变成E,由此可见,位数就是凯撒密码加密和解密的密钥。例如:字符串"ABC"的每个字符都右移3位则变成了“DEF”,解密的时候“DEF”的每个字符左移原创 2022-03-09 12:37:54 · 12709 阅读 · 0 评论 -
【ASCII码表】
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有原创 2022-03-09 11:26:48 · 1338 阅读 · 0 评论 -
【闰年的介绍】
1. 闰年的由来地球环绕太阳转一周的实际时间是365天5时48分46秒。如果一年只有365天,那么每年就多出5个小时。4年就多出23小时15分4秒,差不多就是一天。于是决定每四年增加一天。但是它比一天24小时又少了45分钟,如果每100年有25个闰年的话,就少了18时43分20秒,这就差不多等于1天,这显然不合适。可以算出,每年多出5小时48分56秒,100年就多出581小时16分40秒。而25个闰年需要25*24=600小时。581小时16分40秒只够24个闰年(24*24=576)。于是决定每1原创 2022-03-09 09:36:31 · 782 阅读 · 0 评论 -
【if-else分支控制的进阶方法】
目录1.需求2. 传统方式3. 策略模式4. 选择Map结构1.需求今天在公司的业务功能中做到了公司的支付模块这块,支付这块相信大家应该都有一个比较清晰的概念。这里就先分享支付的相关功能,而是接着这个功能来引出一个比较基础的知识点,代码中分支控制。在做支付功能的时候,别的什么也不用多想。我的第一印象就是好多种类型:阿里,微信,余额,银联等等这些是国内主流的支付方式,还有很多很少用到的支付方式,如果项目种有需求,也需要我们一个个来对接。如果牵扯到国外的项目,国外的支付方式也需要对接。所以支付这块是比较复原创 2022-02-24 17:49:21 · 745 阅读 · 0 评论 -
【Java中断言(assert)的理解】
目录1. 简介2. 使用3. 语法4. 应用实例5. 断言的不足之处6. 对assert的思考1. 简介Java语言中的断言功能在项目中一般很少使用,我在第一次断言的时候是在查看springboot的源码的时候,当时武断的认为断言功能可能是一种比较高级的功能。哈哈哈,但是真正的了解之后,感觉assert的存在可能有些鸡肋,项目中也应该尽量避免使用。2. 使用在Java中,assert关键字是从JAVA SE 1.4引入的,为了避免和使用了Java1.4以前的版本开发的代码中的关键字assert冲突,原创 2022-02-21 16:32:12 · 5624 阅读 · 0 评论 -
private修饰的方法可以通过反射访问,private存在的意义是什么?
在java编程语言中,为了不让外界访问到类中某些属性和方法,通常将该属性或者方法有private修饰符来修饰。此时用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法。但是存不存在其他的方法来访问呢?答案肯定是存在的,这就是java反射带来的便利。利用反射访问类的私有属性及方法如下:public class Student{ private String name; private Integer age; private Student(Integer age){ th原创 2022-02-21 12:53:20 · 677 阅读 · 0 评论 -
【编写if时尽量不要带else】
目录来源:翻译自:Nicklas Millard的文章《Better Software Without If-Else》本文并不肯定或者否定哪一种写法,仅仅为大家提供一些其他的编码思路或者一些值得借鉴的点子。If-Else通常是一个糟糕的选择。它导致设计复杂,代码可读性差,并且可能导致重构困难。但是,If-Else已成为事实上的代码分支解决方案,这确实是有道理的。这是向所有有抱负的开发人员讲授的第一件事。不幸的是,许多开发人员从来没有前进到更合适的分支策略。有些人的口头禅是:If-Else是一把锤原创 2022-02-17 14:39:17 · 2804 阅读 · 1 评论
分享