Java
文章平均质量分 78
记录学习Java框架的一些知识
长林攻城狮
态度决定高度,努力成就人生
展开
-
记录一次HTTP调用方式
后续在开发过程中,可以引入hutool,通过使用HttpUtil的Get和Post方法,可以很方便的发起http方法调用,而不用担心资源释放情况。所以这种方式,是非常推荐的写法。原创 2023-05-21 21:45:26 · 328 阅读 · 0 评论 -
那些开发过程中需要遵守的开发规范
产研需要遵循的开发规范原创 2023-02-24 19:31:36 · 1013 阅读 · 0 评论 -
微服务中API网关的作用是什么?
API网关的作用?原创 2023-02-13 20:46:19 · 2622 阅读 · 4 评论 -
一次JVM垃圾收集全过程
JVM垃圾收集过程详解原创 2023-01-31 17:36:12 · 425 阅读 · 0 评论 -
JVM内存划分要点
JVM虚拟机栈Java虚拟机栈由一个个栈帧组成。栈帧包括:局部变量表、操作数栈、动态链接、方法出口信息等。局部变量表保存的是编译期确定的八种基本类型和对象引用。Java虚拟机栈的两种错误:StackOverFlowError和OutOfMemoryError。堆JDK1.7开始开启逃逸分析:方法中的对象引用没有被返回,或未被外面使用(未逃逸出去),对象可以直接在栈上分配内存。JVM在1.7和1.8中堆内存的区别1.7:新生代(Eden, From Survivor,To Serviv原创 2020-08-30 23:59:33 · 111 阅读 · 0 评论 -
Java基础整理--equals、垃圾回收、内部类、泛型等
1.“==”与equals方法的区别“==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。equals方法是Object类中定义的方法,提供定义“对象内容相等”的逻辑,默认判断地址是否相等,即判断是否为同一个对象。String类中的equals方法重写了Object类中的方法2.静态初始化块静态初始化块执行顺序:上溯到Object类,即ChildClass->FatherClass->Object,先执行Object的静态初始化块,再向原创 2020-06-24 10:37:12 · 2758 阅读 · 1 评论 -
Java中的native方法的使用
1.关于native关键字想必读者已经了解过native关键字了。这里笔者就大致囊括一下,被native关键字修饰的方法叫做本地方法,本地方法和其它方法不一样,本地方法意味着和平台有关,因此使用了native的程序可移植性都不太高。另外native方法在JVM中运行时数据区也和其它方法不一样,它有专门的本地方法栈。native方法主要用于加载文件和动态链接库,由于Java语言无法访问操作系统底层信息(比如:底层硬件设备等),这时候就需要借助C语言来完成了。被native修饰的方法可以被C语言重写。2.使转载 2020-06-21 15:17:20 · 8376 阅读 · 0 评论 -
Java中栈溢出StackOverFlowError和内存溢出OutOfMemoryError的区别
1.stackoverflow:每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生生StackOverflowError溢出异常。2.outofmemory:2.1 栈内存溢出java程序启动一个新线程时转载 2020-06-20 23:09:03 · 1148 阅读 · 0 评论 -
Java基础整理--【全面】面向对象、对象创建内存分析,值传递,this,static,继承,多态,final
本文主要介绍Java中的创建对象的内存分析,参数传递的过程(值传递)以及Java中三大特性之一的多态特性。行文中会穿插Java基础中其他的一些知识点,而这部分知识点也是比较容易疏忽的知识点。文章目录面向对象引入面向过程和面向对象的区别面向对象的生命周期阶段对象创建的内存分析JVM中三块主要的内存空间对象和引用的区别访问实例变量的语法格式构造方法的作用JVM相关重要知识点空指针异常Eclipse相关操作文件夹布局快捷键程序扩展面向对象特性封装封装步骤封装的好处Java值传递thisJava语言中的this关原创 2020-06-06 23:04:18 · 470 阅读 · 0 评论 -
Java基础整理--方法、方法执行内存分析、重载与递归
文章目录方法方法执行内存分析方法重载方法递归方法方法产生的机制某个功能代码只需要写一遍要使用这个功能只需要给这个功能传递具体的数据这个功能完成之后返回一个最终的结果这样代码就可以重复利用,提高代码复用性在返回值类型是void的方法中使用 return 语句用于终止方法的执行public static void fun(){ for(int i = 0; i < 6; i++){ if(i == 3)原创 2020-06-04 23:42:43 · 562 阅读 · 0 评论 -
Java基础整理--控制语句
本文整理Java中的控制语句,罗列基础中的不常见或者易忽略的语法。控制语句中还有最简单的 if 语句,本文未列出。Switchcase语句匹配成功的分支执行,分支当中最后有“break;”语句的话,整个switch语句终止;分支当中没有“break;”语句的话,直接进入下一个分支执行(不进行匹配),这种现象被称为case穿透现象【提供break;语句可以避免穿透】所有分支都没有匹配成功,若有default语句的话,则执行default分支当中的语句switch后面和case后面只能是int或者St原创 2020-06-04 21:50:46 · 142 阅读 · 0 评论 -
Java基础整理--Java标识符、数据类型与字符编码
本文在接着上文介绍完Java简介相关的知识点后,介绍Java基础中的标识符、变量与数据类型等基础内容。文章目录前言标识符字面值变量数据类型字符编码运算符前言javadoc注释java中的注释有三种,分单行注释,普通多行注释和javadoc注释。单行注释和普通多行注释不用多说,javadoc注释是比较专业的注释,该注释会被javadoc.exe工具解析提取并生成帮助文档。 /** * javadoc注释 * javadoc注释 * javadoc注释原创 2020-06-04 11:15:56 · 508 阅读 · 0 评论 -
Java基础整理--Java简介
本文从基础的知识出发,整理与Java开发相关的知识点。文中记录的主要是本人认为比较重要的但又陌生的知识,每个人情况都不尽相同,权且当做Java复习过程中的查漏补缺,也希望能对大家有所帮助。Java简介概述如何定义软件工程师和Java软件工程师?软件工程师是一种职位的名称,通常是通过计算机的“某种编程语言”完成软件的开发。因此,Java软件工程师是通过Java语言完成软件的开发。计算机的组成计算机=硬件(CPU、内存、硬盘、鼠标、键盘、显示器等)+软件;软件=系统软件(直接和硬件交互的软件,如原创 2020-06-03 21:05:28 · 219 阅读 · 0 评论 -
分析比较:基本数据类型与引用数据类型、值传递与引用传递
一、数据类型Java中的数据类型分为两大类,基本数据类型和引用数据类型。1、基本数据类型基本数据类型只有8种,可按照如下分类①整数类型:long、int、short、byte②浮点类型:float、double③字符类型:char④布尔类型:booleanNo. 数据类型 大小/位 可表示数据范围 默认值 1 byte(字节型) 8 -128~127 0 2 short(短整型) 16 -32768~32767转载 2020-06-01 21:27:40 · 320 阅读 · 0 评论 -
Java中异常的分类,checked Exception和unchecked Exception的区别
一、Java的异常层次结构要想明白Java中checked Exception和unchecked Exception的区别,我们首先来看一下Java的异常层次结构这是一个简化的Java异常层次结构示意图,需要注意的是所有的类都是从Throwable继承而来,下一层则分为两个结构,Error和Exception。其中Error类层次描述了Java运行时系统的内部错误和资源耗尽错误,这种...转载 2020-04-25 10:37:12 · 778 阅读 · 0 评论 -
Java中的值传递和引用传递问题详解
首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。更何况,要想知道Java到底是传值还是传引用,起码你要先知道传值和传引用的准确含义吧?可是如果你已经知道了这两个名字的准确含义,那么你自己就能判断Java到底是传值还是传引用。这就好像用大学的名词来解释高中的题目,对...转载 2020-04-25 09:50:48 · 301 阅读 · 0 评论 -
Serializable序列化使用
Serializable是Java提供的序列化接口,是一个空接口,为对象提供标准的序列化与反序列化操作。使用Serializable实现序列化过程相当简单,只需要在类声明的时候指定一个标识,便可以自动的实现默认的序列化过程。private static final long serialVersionUID = 1L; 上面已经说明让对象实现序列化,只需要让当前类实现...转载 2020-04-09 10:20:16 · 553 阅读 · 0 评论 -
Java上转型、隐藏、覆盖与动态绑定
对象的上转型即声明一个父类类型的变量,但将子类的实例赋给了它。或叫父类变量指向了子类对象。有什么意义呢?因为子类是对父类的改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特。定义一个父类类型的引用指向一个子类的对象既可以使用子类更强大的功能,又可以抽取父类的共性。例如:People p1=new Student();//赋值相容,上转型,子类对象即是父类对象Student ...转载 2020-04-08 16:40:44 · 766 阅读 · 1 评论 -
子类继承父类重写父类的属性值问题
案例一试想一下代码的执行结果package com.syc.test;public class A { public static void main(String[] args) { FatherClass father = new FatherClass(); System.out.println(father.info); SonClass son = new ...原创 2020-04-06 22:10:39 · 2805 阅读 · 0 评论 -
类在实现接口的方法时,必须显示地使用public修饰符
第一点说明首先,接口中所有方法默认都是public,至于为什么要是public,原因在于如果不是public,那么只能在同个包下被实现,可访问权限就降低很多了,那么在实现类中,实现的类相当于子类,子类的访问权限是不能比父类小的,而在java中一个类如果没有权限的修饰符,默认是friendly(同一个包内的其它类才可访问),所以在实现类中一定要写public。第二点说明接口的方法默认的就...转载 2020-04-06 15:04:26 · 6623 阅读 · 0 评论 -
src/main/java和src/test/java读取资源文件
第一点:src/main/java:里面的java文件只能直接加载src/main/resources下的资源,不能直接加载src/test/resources下的资源;src/test/java: 里面的java文件既能加载src/test/resources下的资源,又能加载src/main/resources下的资源,当两个resources下都有要加载的同名资源时候,优先选择src/...转载 2020-04-05 14:27:01 · 2300 阅读 · 0 评论 -
SLF4J报错:SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further...原创 2020-04-05 10:20:16 · 883 阅读 · 1 评论 -
定时任务、定时器与Spring触发器QuartzJobBean的使用
在项目中需要用到定时器的功能,比如在特定的时间定时或者在每个一段时间执行一个任务,这里就需要使用到定时器。本文提供两种方式来实现定时器:jdk的Timer以及使用spring的触发器使用Timer定时器方式:第一、编写任务类继承TimerTask,重写run方法package com.syc.timer;import java.util.TimerTask;public ...原创 2020-03-23 10:39:07 · 1186 阅读 · 0 评论 -
Java中的静态代理和动态代理
Java中使用代理的作用是对目标对象的增强,在实际中我们可以在执行目标方法前后进行一些必要的处理。1.静态代理静态代理比较容易理解,我们直接给出例子。比如我们的目标方法是request方法,但是我们希望在每次调用request方法前都进行处理,如打印日志,那么久需要使用代理来处理。接口public interface Subject{ public void reques...原创 2020-03-19 17:52:54 · 194 阅读 · 0 评论 -
Java 反射
1.反射的作用程序可以访问、检测和修改它本身状态或行为的能力,即自描述和自控制。 可以在运行时加载、探知和使用编译期间完全未知的类。 赋予Java语言动态语言特性,弥补强类型语言的不足。2.反射的具体功能-在运行中分析类的能力-在运行中查看和操作对象基于反射自由创建对象 反射构建出无法直接访问的类 set或者get到无法访问的成员变量 调用不可访问的方法-实现通用的数...原创 2020-03-19 15:28:56 · 90 阅读 · 0 评论 -
转发和重定向的区别
看到一篇关于页面跳转方式的介绍,写得挺好的,转载一下。转发和重定向区别详解 作为一名java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。1、request.getRequestDispatcher().forward()方法,只能将请求转发给同一个WEB应用中的组件;而resp...转载 2020-03-06 11:26:58 · 193 阅读 · 0 评论 -
Java中super关键字的使用
在java中,子类继承父类,一般会用到super关键字,下面我们介绍super的使用。本文的内容也是配套B站上一位老师的教学视频进行的笔记记录。内容如下:目录一、子类构造方法中super的使用1.调用子类的构造方法之前,会先调用父类的构造方法2.如果没有显示地调用父类的构造方法,会默认调用父类的无参构造方法3.可以使用super关键字来显示调用父类的构造方法(一定要放在构造器第...原创 2019-11-22 22:07:31 · 492 阅读 · 0 评论 -
Java中的权限修饰符的访问范围详解
Java中共有四个权限修饰符,分别是private, default(表示不写), protected, public,访问权限范围由小到大。下面我们分别介绍权限修饰符修饰类、修饰成员修饰构造器的情况。一、修饰类修饰类只有两个权限修饰符:public和defaultpublic:全局访问default:表示不写修饰符的情况,只能在同包中访问下面我们进行测试:1.创建...原创 2019-11-22 21:09:05 · 2612 阅读 · 2 评论 -
Java中数组的基本操作(数组插入,删除与数组扩容)
本文为学习《漫画算法》中数组部分的笔记,涉及到数组的插入,删除与扩容,以及回顾了Java中构造方法与this的一些基础知识。涵盖的内容较多就不一一例举出来了,能够理解每一行代码的作用就差不多了。目录各操作的代码实现时间复杂度与空间复杂度分析数组的优势和劣势分析首先罗列几个知识点:数组存放在一块连续的地址空间,不能跳过某个存储单元进行存储->数组初始化时,必须指定数组...原创 2019-11-21 22:16:12 · 1383 阅读 · 0 评论 -
Java后端学习线路图
最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从何下手。我就以过来人的经历,写在这篇博客里,不一定都对,但都是我根据自己的经历总结出来的,供你们的参考。Java 基础Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得...转载 2019-10-12 20:17:46 · 920 阅读 · 0 评论