Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
目录前言常见的3XX响应状态码如下:JAVA服务端重定向的方式一、RequestDispatcher.forward二、HttpServletResponse.sendRedirect三、Controller的方法直接返回四、返回重定向ModelAndView五、一个spring的强制重定向方式:...
目录一、枚举类型1、使用枚举类型设置常量2、枚举类型常用方法3、枚举类型中的构造方法二、泛型1、泛型的常规用法2、泛型的高级用法总结一、枚举类型1、使用枚举类型设置常量以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用,并且该常量不能被修改,因为在接口中定义常量时,该常量的修饰符为fi...
Java语言核心技术 如果想要开发Java程序/Java项目之前,必须要安装和配置JDK,这里的JDK表示Java8\JDK8,不过下载软件的时候,强烈推荐大家一定要去软件的官网下载,因为官网提供的软件版本是最新的,会修复旧版本遗留的问题,这样我们在使用软件时可以避免一些问题。1. Window...
目录线程同步的概念同步代码块同步方法线程组线程组的相关方法线程组对象的基本应用线程间的通信线程通信简单应用线程同步的概念
由于同一个进程的多个线程共享同一块存储空间,在带来方便的同时,也会带来访问冲突的问题:
举例:
public class Runnable_test implements Run...
目录一、安装VSCode和Node.js二、VSCode配置三、可能出现的问题总结一、安装VSCode和Node.js
前言:做科研之后确实很少会总结积累,可能是科研中出现的问题的解决方法比较多样灵活,别说了其实就是偷懒哈哈哈哈哈。这不又要做前端才又开始写博客记录环境配置了。行了不说废话了赶紧开始正...
如果说道实现深拷贝最简单的方法,我们第一个想到的就是 JSON.stringify() 方法,因为JSON.stringify()后返回的是字符串,所以我们会再使用JSON.parse()转换为对象,如下代码:
let obj = { name: 'liaoyi',age: 22,sex: 1}
J...
摘要:Thread Dump是非常有用的诊断Java应用问题的工具。本文分享自华为云社区《调试排错 - Java 线程分析之线程Dump分析》,作者:龙哥手记。Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的...
目录1.上传java代码实现2.文件流下载java代码实现3.Fileutil工具类代码1.上传java代码实现
@ResponseBody
@PostMapping("/upload")
public ResponseVo upload(@RequestParam(valu...
目录前言Maven依赖代码前言
本文提供将视频按照时间维度进行剪切的Java工具类,一如既往的实用主义。
Maven依赖
<dependency>
<groupId>com.google.guava</groupId>
...
如果说道实现深拷贝最简单的方法,我们第一个想到的就是 JSON.stringify() 方法,因为JSON.stringify()后返回的是字符串,所以我们会再使用JSON.parse()转换为对象,如下代码:let obj = { name: 'liaoyi',age: 22,sex: 1}JSO...
在 JavaScript 中,宏任务和微任务是指在执行代码的过程中的两种不同的任务类型。
宏任务(macro task)指的是浏览器在执行代码的过程中会调度的任务,比如事件循环中的每一次迭代、setTimeout 和 setInterval 等。宏任务会在浏览器完成当前同步任务之后执行。
微任务(m...
目录一.解析概念StringUtils概念CollectionUtils概念ObjectUtil概念二.区别三.总结一.解析
概念
StringUtils概念
StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充...
目录一、跳跃表的引入二、算法分析1.时间复杂度2.空间复杂度三、跳跃表介绍四、跳跃表的实现1.数据结构定义2.查找3.插入4.删除五、实战1.代码2.测试结果一、跳跃表的引入
对有序顺序表可以采用二分查找,查找的时间复杂度为O (logn),插入、删除的时间复杂度为 O(n )。但是对有序链表不可以...
目录前言理解字符串常量池字符串拼接方式妙用String.intern() 方法字符串常量池有多大?字符串常量池的优缺点字符串池的优点字符串池的缺点总结前言
研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Ja...
目录什么是volatile关键字保证可见性保证有序性变量初始化赋值懒汉式单例 -- 双重校验锁 volatile版隐藏特性无法保证原子性volatile版synchronized版Lock版Atomic版 i++volatile 原理参考资料:总结什么是volatile关键字
volatile是Ja...
目录1 String不可变性2 不可变的好处3 String+和StringBuilder效率差异4 String, StringBuffer and StringBuilder5 String与JVM内存管理6 String api方法1 String不可变性
String类被声明为 final,...
目录1 String不可变性2 不可变的好处3 String+和StringBuilder效率差异4 String, StringBuffer and StringBuilder5 String与JVM内存管理6 String api方法1 String不可变性String类被声明为 final,因...
前言研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为String Intern Pool或String ...
目录静态代理模式代理模式静态代理模式的实现要求举例静态代理模式
代理模式
代理人可以替受代理的人完成一些工作,比如:学校与学生之间的关系来说,学生就好比被被代理类,学生只需要负责上课,写作业,考试等事务,而类似于课程,考试,任课教师的安排等都不需要学生去做,可以交给其学校完成。
静态代理模式的实现要...
目录前言理解字符串常量池两种创建字符串方式字符串拼接方式妙用String.intern() 方法字符串常量池有多大字符串常量池的优缺点总结前言
研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一...