自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 Java接口

什么是接口?接口一种标准或者是一种规范,和类是一个级别,是特殊的抽象类,是专门用于定义类的行为规范,使之规范化抽象类和接口之间的区别:接口是一种契约、规范、标准,抽象类约束子类的行为接口可以多实现,抽象类和普通类一样,只能单继承接口的设计是为了实现通用功能或规范,但是没有关联的情况下影响了父子类的is a的关系,因此,接口和实现类的关系是:类 have a 接口接口中只能定义全局常量,抽象类中可以定义变量也可以定义常量接口中没有构造方法,抽象类可以定义构造器,不定义默认为无参构造器。

2024-05-24 17:13:25 1

原创 Java对象和类

类:是一个模板,是描述一类对象的行为和状态。对象:对象是类的一个实例,有状态有行为。举例:People:name(姓名) age(年龄) sex(性别) skin(肤色)man(男人):"张三" 20 "男" "yellow"women(女人):"春花" 23 "女" "white"……

2024-05-24 17:10:48 1

原创 面向对象的三大特征和五大基本原则

在依赖之间定义一个抽象的接口,使得高层模块调用接口,而底层模块实现接口定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。实现方式:面向接口编程,将公共部分抽象为基类接口或抽象类,通过扩展抽象类,在子类中重写父类的方法实现新的方式支持同样的职责。接口隔离原则体现在:接口应该内聚,避免接口臃肿,一个类对另一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法。通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过重写其方法来改变固有的行为,实现新的拓展,这就是开放。核心思想:依赖于抽象。

2024-05-24 17:08:08 25

原创 面向对象的理解

结构化程序主张按功能来分析系统需求,结构化的主要原则:自顶向下逐步求精模块化设计结构化程序会按功能把程序分为一个个的单独的文件,例如:让灯亮这个功能,就会由多个函数构成一个文件,这个文件用于实现让灯亮这个功能。

2024-05-24 17:01:52 36

原创 Java方法

Java方法是代码语句的集合,由代码共同完成一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,由使用者使用对象或类进行调用优点:使程序变得简短且清晰有利于程序的维护可以提高程序的开发效率有利于提高代码的重用性。

2024-05-24 16:58:06 236

原创 Java数组

多个相同类型数据按一定顺序排列的集合,这个集合具有统一的命名,并通过下标对这些数据进行编号管理数组的特点数组本身是引用类型,详细描述查看:****创建数组对象会在内存中开辟一段连续的空间,而数组名所指代的引用值,就是该连续空间的首地址。数组的长度一旦确定,就无法修改我们可以通过下标的方式调用指定位置的元素,通过指针的移动来遍历,速度很快数组内的元素会根据其本身的数据类型进行默认初始化。

2024-05-24 16:52:10 23

原创 变量与常量

变量:可变的数据称为变量。

2024-05-24 16:50:33 162

原创 Java流程控制

流程控制语句是用来的语句,可以把语句组合成能完成一定功能的小逻辑模块。

2024-05-24 16:44:10 341

原创 Java运算符

该程序使用到了短路逻辑运算符(&&),首先判断 a

2024-05-24 16:40:55 200

原创 常见的字符编码

各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等:字符集是多个符号的集合,每个字符集包含的字符个数不同:字符集只是规定了有哪些字符,而最终决定采用哪些字符,每个字符用多少字节表示等问题,是由编码来决定的。因为计算机要准确的处理各种字符集文字,就需要对字符进行编码,以便于计算机的识别和存储。ANSI在中国大陆称为GBK(以前是GB2312),最常用的是GBK和UTF-8无BOM编码格式。

2024-05-24 16:33:48 189

原创 Java数据类型

数据类型是指一组性质相同的值的集合及定义在此集合上的一些操作的总称根据数据类型的存储方式可分为:原始类型(也叫基本类型):整型、字符型、浮点型、布尔型;8种基本数据类型引用类型:数组、类类型、接口类型根据数据类型的结构可分为:原子类型:是不可以再分解的基本类型,包括整型、字符型、浮点型、布尔型结构类型:由若干类型组合而成,可以再分解,最终分解为原子类型,包括所有引用类型原始类型对应存在原始值;引用类型对应存在引用值。

2024-05-24 16:22:53 256

原创 Java的结构与运行机制

JVM能理解的代码就叫做字节码,文件以.class结尾,不面向任何特定的处理器,只面向JVM虚拟机通过字节码的方式,Java语言成功解决了传统解释型语言执行效率低的问题,同时保留了解释型语言可移植的特性虽然执行效率低于C/C++等语言,但是在切换操作系统的情况下,字节码文件无需重新编译,即可运行。:将符号引用转化为直接引用是因为直接引用是JVM虚拟机可以直接使用的,是虚拟机可读的地址信息,是直接指向目标的指针,不同的JVM虚拟机解析出来的直接地址是不同的,一旦出现直接地址就意味着该目标已经存在于内存中。

2024-05-24 16:16:59 320

原创 Java编程规范

如:BusinessException方法的命名规则:方法名是一个动词,

2024-05-24 16:00:01 162

原创 Java语言规范

创建自定义的类,public修饰的class类的类名需要跟文件名完全保持一致。—可执行Java程序的入口,具体介绍查看2.Java的main方法为什么这么写。—左花括号表示代码块/方法/类的开始,右花括号代表代码块/方法/类的结束。—0或1条,用于引入Java提供的API。—0或1条,出现在程序最开始的地方。—分为行注释、块注释、文档注释。

2024-05-24 15:45:44 57

原创 Java的发展与特点

2018年,Android的Java侵权案,Google赔偿Oracle88亿美元,同年Oracle宣布JavaEE成为历史名词,JDBC、JMS、Servlet赠予Eclipse基金会,并发布了JDK11,也称作LTS版本的JDK,发布革命性的ZGC,调整JDK授权许可。1990年,在sun计算机公司中,由Patrick Naughton、MikeSheridan以及James Gosling领导的小组Green Team,开发出的新的编程语言,命名为Oak,后期命名为Java。

2024-05-24 15:43:39 125

原创 详解Java之main方法

public static void main(String[] args){…}这是Java程序的入口,是main方法的方法签名为什么要采用这种签名方式?首先了解几个概念:

2022-06-01 15:45:08 531

原创 Java-IO流详解

1.File类File类可以使用文件路径字符串来创建File实例,该文件路径可以是绝对路径,也可以是相对路径,相对路径的解释是依据默认路径(user.dir),即用户工作路径一个File对象就代表一个文件或一个目录路径分隔符windows中使用的是\\Linux、Unix以及URL中使用的是/java也支持在windows中使用/如果为了避免出现跨平台问题,可以使用File类的一个常量public static final String separatorFile

2022-05-20 15:00:29 508

原创 Java-异常

1.异常概述在Java语言中,将程序执行中发生的不正常情况称为异常。语法错误和逻辑错误不是异常Java程序执行过程中所发生的异常事件可分为两类:Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。StackOverflowError和OutOfMemoryError等Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以用针对性的代码进行处理。例如:空指针访问异常NullPointerException、试图读取不存在的文件、网络连接中断、

2022-05-20 14:48:53 135

原创 HTML简介

1.HTML简介什么是网页?网页由三部分组成:内容、表型、行为内容:是页面数据。例如文本、数据库向前端展示的数据等都称为内容–而内容是通过HTML技术来展示的表现:是这些内容在页面上的展示形式,例如:布局、颜色、大小等–一般使用CSS技术实现行为:是指页面中元素与输入设备交互的响应,例如鼠标点击按钮的响应行为等–一般使用JavaScript来实现什么是HTML?HTML:超文本标记语言(Hyper Text Markup Language)通过标签来标记要显示的网页中的各个部分

2021-09-13 13:03:05 503

原创 JDBC的使用步骤

下载Jar包JDBC的使用必须提供第三方的jar包,且Mysql和mysql-connection版本要对应可参考该文档:https://blog.csdn.net/hchhan/article/details/81106992建议是找到mysql对应版本的mysql-connection提供两个下载jar包的地址:清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/Connector-J/maven库:https:

2021-09-11 11:33:39 77

原创 Tomcat安装与介绍

下载地址:https://tomcat.apache.org/查看下载版本这里9.0.56是针对于java8开发的,我的JDK版本是8,所以选择下载Tomcat9.0.52根据系统下载对应的版本,zip是免安装版,installer是安装版下载zip后解压即可启动方法:点击startup.bat–如果出现一闪而过的情况,要检查JDK的环境变量配置是否正确打开浏览器访问localhost:8080,出现如下界面即可...

2021-09-03 11:45:31 194

原创 HashSet/HashMap底层源码解析

HashSet/HashMap底层源码解析注意:这里仅仅只针对JDK8进行源码分析HashSet new的过程实际上是创建HashMap过程,首先看一下测试代码测试代码 @Test @SuppressWarnings("all") public void hashSetTest(){ Set hashSet=new HashSet(); hashSet.add("李白"); hashSet.add("杜甫"); hash

2021-08-14 15:55:19 144

原创 类和对象分析

类与对象面向对象程序设计的重点就是对类的设计类的设计,其实就是类的成员设计类的基本成员 属性(Field):类的成员变量 行为(Method):类的成员方法类的全部成员: 属性、方法、构造器、代码块、内部类类的语法格式:[权限修饰符] [修饰符] class 类名{ //属性声明 修饰符 数据类型 变量名; //默认构造器 public 类名(){}//可不写,但是如果重写了构造器,默认构造器就会被覆盖,需要手写才行 //自定义构造器 public 类名(数据类型 形

2021-07-08 17:29:11 107

原创 面向对象--类的成员之属性

3.类面向对象程序设计的重点就是对类的设计类的设计,其实就是类的成员设计类的基本成员 属性(Field):类的成员变量 行为(Method):类的成员方法类的全部成员: 属性、方法、构造器、代码块、内部类类的语法格式:[权限修饰符] [修饰符] class 类名{ //属性声明 修饰符 数据类型 变量名; //默认构造器 public 类名(){}//可不写,但是如果重写了构造器,默认构造器就会被覆盖,需要手写才行 //自定义构造器 public 类名(数据类型 形参

2021-07-08 17:03:39 313

原创 JVM--垃圾回收算法

目录1.GC垃圾回收算法1.1可达性分析算法1.2引用计数器算法(已淘汰)1.3 复制算法1.4标记清除算法1.5标记整理算法1.GC垃圾回收算法1.1可达性分析算法实现过程: 1.可达性分析算法根据GC Root(根对象)作为起始点,按照从上到下的方式遍历确认GC Root->obj是否可达 2.每一条路径称为一条引用链,如果目标对象与GC Root没有任何引用链相连,则标记为不可达 3.在触发GC回收之前对象会自动调用内部的终止方法finalize(),该方法可以通过重写来复活该对象(

2021-07-08 15:15:41 93

原创 JVM--垃圾回收机制

目录1.JVM堆的基本结构2.GC垃圾回收机制2.1GC回收器分类2.2GC收集器使用的过程1.JVM堆的基本结构1. JVM堆空间分为:Java堆和方法区(元空间/永久代)2. Java堆从GC的角度可以细分为:新生代和老年代(因此JVM堆可以分为三大区:新生代、老年代、永久代)3. 新生代又可以细分为:Eden区、两个幸存区(Survivor-From区、Survivor-To区) * Eden区:new出来的对象都会存储到Eden区(较大对象会直接存储到老年区) * Survivor

2021-07-08 15:14:20 80

原创 JVM--线程

​JVM线程1.JVM线程是指程序执行过程中的一个线程实体,JVM允许一个应用并并行多个线程。2.​Hotspot JVM中的Java线程与原生操作系统线程有直接的映射关系(这个映射关系就是靠C/C++实现的)3.当线程创建后需要在运行期间JVM将本地存储、缓冲区分配、同步对象、栈、程序计数器等准备好后,映射到原生操作系统创建原生线程。4.JVM线程结束后,原生系统上的线程也会随之被回收5.操作系统负责调度所有线程,并把他们分配到任何可用的CPU上6.当原生线程初始化完毕,就会调用Java线程的

2021-07-08 14:22:18 92

原创 排序算法-希尔排序

目录基本思想希尔排序代码复杂度分析基本思想1.将整个待排序数组分为若干个子序列,相隔固定增量(步长)2.将若干子序列分别进行插入排序,待若干子序列排序完后,缩小增量3.重复步骤24.最后整体再进行一次插入排序(当步长=1时)希尔排序代码 //a[]数组 k步长 public void shellSort(int a[]){ //先获取步长 int h=1;//步长初始化 while(h<(a.length)/2){//a.len

2021-07-07 18:09:05 139 2

原创 排序算法-直接插入排序

目录基本思想插入排序代码复杂度分析基本思想1.把n个待排序数组分为一个有序数组和一个无序数组2.初始有序数组只有一个值(无序数组从索引为1开始,而索引为0的数值作为一个有序数组)3.排序过程中,每次从无序数组中取出一个值,倒序遍历有序数组与该值依次进行比较4.如果有序数组的值大于该值则继续比较,如果小于该值,则插入适当位置,组成新的有序数组插入排序代码 public void insertionSort(int a[]){ for (int i = 1; i <

2021-07-07 12:55:20 93

原创 Java基础程序设计-数组

数组数组是存储在堆上的对象,可以保存多个同类型的变量,记住,必须是同类型的数组的概念数组是多个相同类型数据按一定的顺序排序的集合,并使用一个名字命名。并通过编号的方式对这些数据进行统一的管理。数组的常见概念数组名下标(索引)元素数组的长度数组的特点数组本身是引用数据类型的变量,数组的元素既可以是基本数据类型,也可以是引用数据类型创建数组对象会在内存中创建一整块连续的内存空间数组的长度一旦初始化就无法修改数组的分类①按照维度:一维数组、二维数组....②按照数组元

2021-07-06 17:36:44 168

原创 Java面向对象-三大特性

Java面向对象的三大特性封装:javaBean,Java的类 1.类的访问权限修饰符public 2.类中属性私有化private 3.类中要提供getter/setterpackage:作用:定义包的关键字 语法:package 包名 特点:对类以目录的方式进行管理 规则:1.包名一般是小写的单词 2.定义包名规范:项目的类型.公司名称.项目名称.模块名称import:作用:导入类 语法:import [static(只导入静态方法)] 包名.类名;//也可以import 包名.*

2021-07-06 16:44:41 66

原创 Java基础程序设计-运算符分类

算术运算符运算符运算范例结果+正号+33-负号b=4;-b-4+加5+510-减6-42*乘3*412/除5/51%取模(取余)7%52++++自增(前):先运算后取值自增(后):先取值后运算a=2;b=++aa=2;b=a++a=3;b=3a=3;b=2––自减(前):先运算后取值自减(后):先取值后运算a=2;b=–aa=2;b=a–a=1;b=1a=1;b=2+字符串

2021-07-05 15:32:39 101

原创 Java发展史

Java发展史是SUN(Stanford University Network,斯坦福大学网络公司) 1995年推出的一门高级编程语言。是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。applet内嵌在HTML代码中。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。后台开发:Java、PHP、Pyt

2021-07-05 14:57:05 215

原创 编程语言分类

1.机器语言机器语言:指令以二进制(0,1)形式组成,一条二进制指令又可以看作是由操作码和操作数两部分组成操作码:操作码规定了指令的操作,是机器语言的关键字操作数:操作数表示该指令的操作对象优点能利用机器指令精准的描述算法,编程质量高所占用的存储空间小执行速度快缺点难读、难记、难修改需要人工分配内存–易错,难上手程序通用性差–不可移植2.汇编语言汇编语言:通过助记符表示一条机器指令例如:我们将原本的二进制代码中的+操作(操作码)替换为了一个add(助记符),中间添加了

2021-07-05 11:19:49 353

原创 Java特点与应用领域

1.java开发环境JDKjava开发工具包,包含了编译工具,打包工具等,是开发运行的核心配置环境,包含JRE JRE是java的运行时核心,为java的编译提供运行时环境,包含了JVMJVM运行的虚拟平台,是java跨平台的重要环境Java的运行步骤:源文件->编译器->字节码文件->解释器->运行2.java基本介绍java是Sun公司推出的一门高级编程语言1.1java分类: JavaSE(标准版):是Java的基础知识 JavaEE(企业版):ja

2021-07-05 10:07:10 497

原创 Java基础程序设计

1.注释 单行注释: //注释内容 用于描述属性或方法内具体功能解释 多行注释:/*注释内容*/ 用于描述方法的大致效果功能,以及使用的参数变量 说明注释:/**注释内容*/ 用于说明项目的版本,作者,公司,项目名、项目描述等一系列信息代码示例:/*** <p>Title: Person</p> * @author 111 * @date 2019年8月10日下午12:27:41* version 1.0* 描述:*/class Person

2021-07-05 10:05:54 108

原创 JVM--本地方法接口

本地方法接口native:调用本地c/c++方法来调用操作操作系统Native凡是带了native关键字的,说明Java的作用范围达不到,需要去调用底层C语言的本地方法库首先会进入将native方法加载到本地方法栈调用本地方法接口JNIJava在内存区域中专门开辟了一块标记区域:本地方法栈(native Method stack),用于登记native方法最终执行的时候会通过JNI调用本地方法库...

2021-06-28 10:00:55 58

原创 JVM--运行时数据区

运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域,不同的区域有不同的用途以及创建和销毁时间;有些区域随着虚拟机进程的启动而存在,有些区域则是依赖线程的启动和结束而建立和销毁。内存区域栈(Stack)堆(Heap)方法区(Method Area)本地方法区(Native Method Area)程序计数器(Program Counter Register)栈特点: * 先进后出,后进先出 * 线程私有,内存大小固定,且

2021-06-28 09:56:40 144 1

原创 JVM--执行引擎

执行引擎执行引擎:由JVM自己实现的(操作系统的执行引擎是由硬件实现),将字节码文件解释/编译为对应平台上的机器码指令。主要包括了:解释器(interpreter)、JIT编译器、探测器(热点代码探测器·)和垃圾回收器解释器:用于解释字节码文件转换为本地机器码,解释效率高,执行效率低(执行重复代码需要重复解释)字节码解释器:在执行时通过纯软件代码模拟字节码的执行,效率低模板解释器:将每一条字节码和一个模板函数相关联,模板函数中直接产生这条字节码执行时的机器码,从而很大程度上提高了解释器

2021-06-28 00:17:16 96 1

原创 JVM--类加载器ClassLoader

1.类加载器类加载器子系统负责从文件系统或网路中加载class文件类加载器怎么识别的class文件?class文件在文件开头有一个特定的文件标识(ca fe ba be)只要是有这个特定的文件标识就会被类加载器加载1.1类加载器分类1.引导类加载器(BootStrap ClassLoader):主要负责加载核心类库、加载ExtClassLoader和AppClassLoader,并指定为这个两个加载器的父加载器(引导类加载器是使用C/C++编写的,Java获取不到,因此返回为null)2.自

2021-06-25 18:16:28 170 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除