![](https://img-blog.csdnimg.cn/20200408102410322.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 54
Java学习笔记、总结与感悟
赵大土
是非审之于己,毁誉听之于人,得失安之于素,成败归之于零。
展开
-
Java:阿里规范学习笔记
命名规范在见名知意和简短寻求平衡类名使用大驼峰方法名、参数名、成员变量、局部变量使用小驼峰常量使用大写且使用下划线分割原创 2023-03-19 15:21:13 · 114 阅读 · 0 评论 -
Java:避免魔法值是使用枚举还是静态常量
枚举还是静态常量枚举静态常量在写任务的时候,需要表示任务的状态,这时候如何优雅避免使用魔法值呢?枚举public enum TaskStatusEnum{ }静态常量public class TaskStatusConstant{ public static final Integer = 0; public static final Integer START = 1; ...}......原创 2023-03-19 15:18:45 · 119 阅读 · 0 评论 -
面试:2022年3月11日薄荷保Java软件工程师面试题目总结
2022年3月11日薄荷保Java软件工程师面试总结一面:技术组长二面:技术经理三面:人事一面:技术组长先做个简单自我介绍吧你们的微服务项目总共拆分了几个微服务?按什么维度拆分的?你们的任务服务如何实现自动任务的?界面可配置吗?Quartz如何解决并发问题的?你们的消息服务需要鉴权吗?如果需要,是怎么鉴权的?Nacos是AP还是CP模型?Nacos具体如何实现高可用的?如果一个服务宕机了,会如何处理?会立即剔除该服务吗?Nacos的心跳检测用的什么协议?Kafka你们是怎么用的?是如何原创 2022-03-13 21:22:48 · 1921 阅读 · 0 评论 -
面试:2022年3月11日NewBankerJava软件工程师面试题目总结
技术一面技术二面技术一面先自我介绍一下吧技术二面原创 2022-03-12 22:17:30 · 441 阅读 · 0 评论 -
Java:对象创建的流程
对象创建的流程说说对象创建的流程?JVM为对象分配内存时需要注意什么?什么是指针碰撞(Bump The Pointer)?什么又是空闲列表(Free List)?说说对象创建的流程?JVM遇到new指令之后,会先检查指令的参数是否能在常量池中定位到一个类的符号引用,并且会检查这个符号引用代表的类是否已经被加载、解析和初始化,如果没有,则会先执行对应的类加载过程。在类加载检查通过之后,JVM会为对象分配内存(大小在类加载完成后就确定了),内存分配完成后,就会将分配的内存初始化为零值(不包括对象头),之后原创 2021-12-23 21:58:18 · 364 阅读 · 0 评论 -
Java:JVM内存模型
JVM内存模型是指Java运行时数据区域,根据JVM规范,主要包括以下五个区域:...原创 2021-12-23 16:55:08 · 569 阅读 · 0 评论 -
Java:@JsonFormat与@DateTimeFormat的关系
@JsonFormat与@DateTimeFormat的关系@JsonFormat使用@JsonFormat序列化使用DateTimeFormat@DateTimeFormat是Spring的注解,用于格式化@JsonFormat@JsonFormat是Jackson的注解,用于格式化序列化后的时间属性下面是不使用@JsonFormatimport com.fasterxml.jackson.databind.ObjectMapper;import lombok.AllArgsConstruct原创 2021-06-29 15:22:54 · 664 阅读 · 0 评论 -
Java:加密与数字证书
接口验签接口为什么要验签?接口如何验签?方案一:本地数据接口为什么要验签?接口验签是指验证接口调用方的签名以确定接口调用方的合法性,如果不对接口调用方加以验证,那么谁都可以任意地调用接口,如此必然导致安全性问题,所以为了提高接口的安全性,我们需要对接口进行验签。接口如何验签?实现接口验签的核心是接口调用方额外提供一个签名字段,接口提供方通过校验这个签名字段来确认该接口调用方是否合法方案一:本地数据接口提供方提供给接口调用方一个唯一的签名字段,接口调用方通过回传该签名字段实现校验问题:可以通过拦原创 2021-06-18 16:06:14 · 649 阅读 · 2 评论 -
Java:编码
编码字符编码URL编码Base64编码字符编码因为计算机只能存储和处理二进制数,所以自然语言需要经过某种映射关系才能展示在计算机中字符集:字符的集合ASCII字符集:美国常用字符集IOS-8859-1字符集:西欧常用字符集GB2312字符集:简体中文常用字符集GBK字符集:GB2312升级版集BIG5字符集:繁体中文常用字符集Unicode字符集:全球统一字符集字符编码:以何种映射规则将字符转换为二进制数字符解码:以何种映射规则将二进制数转换为字符ASCII编码:以7位(原创 2021-06-17 16:12:44 · 135 阅读 · 0 评论 -
Java:Java8新特性
Java8新特性函数式接口Lambda表达式方法引用接口默认方法接口静态方法OptionalStream APIDate-Time APIBase64函数式接口函数式接口是指有且仅有一个抽象方法的接口(但可以有多个非抽象方法),一般使用@FunctionalInterface标注(不使用该注解,但符合条件的接口也会隐式转换为函数式接口)@FunctionalInterfacepublic interface TestFunctional{ void test(); }Lambda表达式la原创 2021-06-15 19:00:23 · 108 阅读 · 0 评论 -
Java:JVM命令
JVM工具的使用jpsjstatjinfojconsolejps# 显示Java进程ID、执行进程的主类名jpsjps -l# 显示Java进程ID、执行进程的的主类名、JVM配置信息jps -vjstat# 查看某个进程的具体信息# jstat -param pid time times# 查看pid为9230在接下来30ms中10的gc信息jstat -gc 9230 30 10jinfo# 查看某个进程具体信息# jinfo pidjinfo 9230jcons原创 2021-06-11 16:56:06 · 95 阅读 · 0 评论 -
Java:使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开
问题在SpringBoot项目中,使用POI导出查询结果至Excel文件中,成功导出后打开Excel文件提示如下信息方案在仔细检查代码后发现并不存在业务代码逻辑问题,而且同样的代码在另一台电脑上是可行的,只是两台电脑打开Excel的软件不同,一台是WPS(可行),一台是Microsoft Office专业增强版2019(不可行),说明是生成的Excel文件的版本格式差异。查询POI文档,发现POI提供HSSFWorkBook、XSSFWorkBook、SXSSFWorkBook这三个类来操作Exce原创 2020-12-21 14:00:07 · 7185 阅读 · 2 评论 -
Java:druid java.lang.IllegalArgumentException: Failed to decrypt
问题在项目中遇到更换数据库用户,使用明文或密文启动应用都提示druid java.lang.IllegalArgumentException: Failed to decrypt方案在druid的maven目录下使用cmd执行一下命令java -cp druid-1.1.23.jar com.ablibaba.druid.filter.config.ConfigTools crmtest粘贴publicKey和password...原创 2020-12-16 11:31:21 · 2236 阅读 · 4 评论 -
Java:数据脱敏示例
数据脱敏处理手机号脱敏身份证号脱敏邮箱账号脱敏微信号脱敏姓名脱敏银行卡号脱敏手机号脱敏public class DataMaskingUtils{ //匹配规则 private static final String REGEX_OF_PHONE = "(^\\d{3})\\d.*(\\d{4}$)"; //替换规则 private static final String RRPLAGE_OF_PHONE = "$1****$2"; /** * 手机号脱敏 153****8736原创 2021-02-24 13:36:19 · 1053 阅读 · 0 评论 -
Java:后端接参示例
接参方式SpringMVC接参GET请求POST请求SpringMVC接参GET请求@RestController@RequestMapping("/user")public class UserController{ /** * 基本类型 * http://localhost:8080/user/id?id=1 */ @GetMapping("/id") public Result<Object> getById(Integer id){ //to do...原创 2021-02-04 17:17:03 · 187 阅读 · 0 评论 -
Java:接口文档示例
接口文档规范0.示例代码1.接口说明2.接口地址3.请求方式4.请求参数5.响应参数6.成功示例7.异常示例0.示例代码@RestController@RequestMapping("/user")@Validatedpublic class UserController{ @GetMapping("/page-list") public Result<Object> getPageList(UserQueryDTO dto){ //to do... }}1.接口说明原创 2021-02-03 20:58:07 · 7307 阅读 · 2 评论 -
Java:异常处理
全局异常处理@RestControllerAdvicepublic class GlobalExceptionHandler{ /** * 前端入参异常处理 */ @ExceptionHandler({MethodArgumentNotValidException.class, BindException.class, ConstraintValidationException.class}) public Result<Object> parameterValidExce原创 2021-02-03 19:20:55 · 117 阅读 · 0 评论 -
Java:视图层返回对象示例
统一视图层返回对象@Data@NoArgsContructor@AllArgsConstructorpublic class Result<T> implements Serializable{ private static final long serialVersionUID = -3227876720404375612L; private static final Integer SUCCESS_CODE = 200; private static fina原创 2021-02-03 19:03:58 · 155 阅读 · 0 评论 -
List「Object」和List「?」的区别
List<Object> listObject =new ArrayList<>();listObject.add(1);List<?> list=new ArrayList<>();//编译通过list.remove(1);list.clear();list.add(null);//编译报错list.add(1);原创 2020-11-25 19:10:36 · 513 阅读 · 0 评论 -
项目笔记:租房网
环境准备1.eureka注册中心2.MongoDB数据库3.FastDFS分布式文件服务器工程创建1.livegoods2.zuul3.commons4.dao4.banner-service-api5.banner-service6.banner-client问题总结1.跨源请求环境准备1.eureka注册中心在两个独立的Linux(centos-6.5)中安装eureka,并形成集群2.MongoDB数据库在一个独立的Linux中安装MongoDB3.FastDFS分布式文件服务器在一个.原创 2020-06-29 22:04:04 · 357 阅读 · 0 评论 -
学习回顾:微服务相关
Dubbo原创 2020-06-24 23:16:34 · 311 阅读 · 0 评论 -
学习回顾_Java高级
SpringSpring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架1.Spring IOCSpring IOC实现了对象之间的解耦//导入jar//commons-logging-1.1.3.jar//spring-beans-4.1.6.RELEASE.jar//spring-context-4.1.6.RELEASE.jar//spring-core-4.1.6.RELEASE.jar//spring-expression-4.1.6.RELEASE.jarcla原创 2020-06-11 19:06:50 · 362 阅读 · 0 评论 -
使用IntelliJ IDEA进行远程项目部署(Tools下的Deployment工具)
1.启动远程的服务器(本文使用的服务器是安装在VMware中CentOS6.5上的Tomcat8.5)2.将编写好的项目代码打成war包(本文使用Maven)3.配置远程服务器信息4.远程部署5.访问测试原创 2020-06-11 18:39:30 · 2259 阅读 · 0 评论 -
解决Maven项目中引入资源后却不能导包的情况
今天使用IntelliJ IDEA构建Maven聚合项目时,在子项目的pom文件中正确导入了资源后,在代码中却无法引用下图为父项目的pom下图为子项目的pom下图为项目中引用下图为Maven管理窗口图示看出资源时正确的导入的,但是在代码使用却不行,思来想去也就一个可能了,IDEA可能还没读取到????于是使用reimport,发现居然可以了????...原创 2020-06-11 13:30:31 · 1274 阅读 · 0 评论 -
解决在IntelliJ IDEA中使用Maven构建聚合项目时webapp子项目显示灰色
今天在IntelliJ IDEA中使用Maven构建聚合项目时,在Maven的管理窗口中,webapp子项目的名称显示灰色查看.idea目录下的misc.xml发现貌似该项目被忽略了删除该配置或进入settings - Build,Execution,Deplopment - Build Tools - Maven - Ignored Files下取消勾选项目即可1.关于.idea目录:该目录是存放IDEA构建项目的配置信息,如运行和调试配置、历史记录、版本控制信息等,具体可参考官网信息Wha原创 2020-06-11 12:36:16 · 1269 阅读 · 0 评论 -
学习回顾_Java中级
Mybatis1.Mybatis执行流程基于传统DAO层开发(无接口)Mybatis核心配置文件 - SqlSessionFactoryBuilder - SqlSessionFactory - SqlSession - 数据库基于代理模式开发(接口)Mybatis核心配置文件 - SqlSessionFactoryBuilder - SqlSessionFactory - SqlSe...原创 2020-06-01 11:38:07 · 377 阅读 · 0 评论 -
【记】一次失败的Mybatis工具类封装
在使用Mybatis进行数据库操作时,虽然省略了JDBC的繁琐操作,但出现了创建SqlSession的冗余class PersonServiceImpl implements PersonService{ @Override public List<Person> queryAllPerson(){ InputStream is=Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactoryBuilder原创 2020-06-01 11:36:10 · 296 阅读 · 0 评论 -
Java集合框架的继承关系图
List1.ArrayList2.LinkedList3.Vector4.CopyOnWriteArrayList原创 2020-05-30 21:01:39 · 234 阅读 · 0 评论 -
对Java内存模型的理解
参考资料1.京东架构师100分钟带你重新认识Java内存模型!让你面试无忧!个人思考要理解Java内存模型,首先需要了解计算机内存模型volatile关键字底层实现主要是通过汇编lock前缀指令,它会锁定这块内存区域的缓存(缓存行锁定)并回写到主内存IA-32架构软件开发者手册对lock指令的解释:会将当前处理器缓存行的数据立即回写到系统内存这个回写内存的操作会引起其他CPU里缓...原创 2020-05-30 21:00:20 · 193 阅读 · 0 评论 -
学习回顾_JavaSE
1.关于配置path与classpath安装JDK后配置path为了在任意路径下执行java命令;配置classpath是为了在任意路径下执行.class文件原创 2020-05-30 20:59:24 · 426 阅读 · 2 评论 -
使用Mybatis结合Jsp开发OA项目问题总结
文章目录form表单中input标签中的required属性如何在submit中生效?form表单中的submit如何跳转到新页面?页面加载的同时,ajax请求后台数据后存入session中,session数据如何及时渲染到jsp页面?如何在jQuery的选择器中获取自身自定义的属性值?form表单中input标签中的required属性如何在submit中生效?错误方式:<form id="form"> <input type="text" name="username" req原创 2020-05-30 20:58:52 · 239 阅读 · 0 评论 -
面试题-DataInputStream和FileInputStream的区别及应用场景
DataInputStreamFileInputStream原创 2019-12-02 22:33:38 · 3273 阅读 · 1 评论 -
面试题-请你谈谈Java的类加载过程
Java的类加载过程原创 2019-11-29 22:28:20 · 156 阅读 · 0 评论 -
面试题-谈谈对反射的理解
什么是反射反射机制(Reflection)是指动态获取类信息、动态调用类方法的功能一般来说,程序是在编译期被加载,但反射在编译期并不确定哪个类被加载,而是在程序运行时才被加载、探知、自审Java反射机制主要提供的功能:在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时调用任意一个对象的方法生成动态代理Java让我们...原创 2019-11-28 22:31:25 · 2162 阅读 · 0 评论 -
面试题-谈谈你对Synchronized关键字、类锁、方法锁、重入锁的理解
谈谈你对Synchronized关键字、类锁、方法锁、重入锁的理解Synchronized关键字修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获取当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码块前要获取给定对象的锁synchronized是Java中的同步锁,修饰一个代码块,被修饰的代...原创 2019-11-26 22:31:38 · 862 阅读 · 0 评论 -
RBAC权限模型(二)_Java实现
1. RBAC的权限管理1.1 问题1.2 解决-使用过滤器1. RBAC的权限管理1.1 问题RBAC通过引入Role来简化权限管理,这属于数据库的设计,但具体的Java代码如何实现权限管理?1.2 解决-使用过滤器在用户发送请求时,先校验该用户的权限//拦截所有请求@WebFilter("/*")public class MyFilter implements Filter{...原创 2019-10-18 22:18:30 · 628 阅读 · 0 评论 -
Java:双色球引发的血案
双色球引发的血案(一)原创 2019-07-22 22:30:32 · 208 阅读 · 0 评论 -
Java静态方法、代码块、封装、继承及Object类
封装、继承走起来1. 静态方法2. 代码块3. 面试题_介绍static关键字4. 包5. 封装6. 继承7. Object类的方法1. 今日已经来不及,一有时间补充起原创 2019-07-30 22:32:40 · 587 阅读 · 0 评论 -
接口、内部类、异常机制
向下一步进发原创 2019-08-03 08:30:58 · 562 阅读 · 0 评论 -
Java:由画菱形的星星图引发的思考(三)
由画菱形的星星图引发的思考(三)我想到了我想到了通过这道题,我想我的思维更加开阔,怎么说呢,通过编程,我认为我认识事物的方式有一定的改善,或者说,我有时会尝试换一个角度去观察生活。具体就拿这道题来说,开始我思考的是如何一行行打印,这样确实能行得通,但是对于数量小的菱形还行,随着数量增加,代码也会增加。代码应该像机器,应该是省力,而不是费力,就像走路和坐车一样,现在造出了车子,而我开始的思维方...原创 2019-07-20 21:33:58 · 205 阅读 · 0 评论