自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark笔记

*自定义数据累加器:WordCount1. 继承AccumulatorV2类定义我们的泛型IN:累加器输入的数据类型OUT: 累加器返回的数据类型2. 重写方法()private var wcMap = mutable . Map [ String , Long ]() // 判断是否为初始状态,表示初始值的意思 override def isZero : Boolean = {

2023-06-08 20:23:07 619

原创 1024

程序员节日快乐

2021-10-24 08:46:42 187

原创 StringTable

String的基本特性String字符串:使用一对""引起来。String声明为final的,不可被继承。String实现了Serializable接口,表示字符串是支持序列化的。实现了Comparable接口:便是String是可以比较大小的。String在JDK8中及以前内部定义了final char[] value用于存储字符串数据,JDK9时改为byte[].String在JDK9中存储结构变更更新日志结论:String再也不用char[] 来存储,改成用byte[]加上编码标记

2021-09-04 10:45:43 216 2

原创 JVM中的执行引擎

执行引擎概述执行引擎概述执行引擎是Java虚拟机核心的组成部分之一。"虚拟机"是一个相对于"物理机"的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的。,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一

2021-09-02 11:12:07 110

原创 JVM是什么

什么是JVM?1、JVM是Java虚拟机,是用来执行Java字节码(二进制的形式)的虚拟机计算机。2、JVM是运行在操作系统之上的,与硬件没有任何关系。Java的跨平台原理跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多出运行原理:编译之后的字节码文件和平台无关,需要在不同的操作系统之上安装一个对应版本的虚拟机(JVM)(Java虚拟机不和包括Java在内的任何语言绑定,他只与class文件这种二进制文件格式所关联。无论使用何种语言进行软件开发,只要将源文件编译成正确

2021-09-02 11:11:32 4703

原创 JVM中的直接内存

直接内存概述不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常,访问直接内存的速度会优于Java堆。及读写性能好。因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。Java的NIO库允许Java程序使用直接内存,用于数据缓冲区。直接缓冲区与非直接缓冲区直接缓冲区使用NIO时,如下图,操作系统划出的直接缓存区可

2021-09-02 11:11:02 104

原创 对象的实例化及内存布局访问定位

对象的实例化大厂面试题对象在JVM中是怎么存储的?对象头信息里面有哪些东西Java对象头里有什么前面所述是从字节码角度看待对象的创建过程,现在从执行步骤的角度来分析对象的内存布局对象的访问定位JVM是如何通过栈帧中的对象引用访问到其内部的对象实例的呢?...

2021-09-02 11:10:23 57

原创 JVM运行时数据区之方法区

方法区栈、堆、方法区的交互关系运行时数据区的结构图从线程共享与否的角度看栈、堆、方法区的交互关系方法区的理解官方文档The Java Virtual Machine has a method area that is shared among all Java Virtual Machine threads. The method area is analogous to the storage area for compiled code of a conventional lang

2021-08-24 12:03:39 126

原创 JVM运行时数据区------堆

堆堆(Heap)的核心概述一个JVM实例只存在一个堆内存,对也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存的大小是可以调节的。《Java虚拟机规范》规定,堆可以处于物理上不连续的空间中,但在逻辑上它应该被视为连续的。所有的线程共享Java堆,在这里还可以划分为线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)。《Java虚拟机规范》中对Java堆的描述是:所有

2021-08-21 20:22:51 166

原创 Java面试题错题

错题一 i的值输出是多少/** * @program: JVMDemo * @description: test * @author: 郑朝文 * @create: 2021-08-20 11:59 **/public class ErrorTest { public static void main(String[] args) { ErrorTest inc = new ErrorTest(); int i = 0; inc.ferm

2021-08-20 12:27:43 97

原创 JVM运行时数据区

JVM运行时数据区概述内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中的内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异(我们以HotSpot虚拟机来展开)灰色区域为单独线程私有的,红色的为多个线程共享的。即每个线程独立包括程序计数器、栈、本地栈。线程间共享:堆、堆外内存(永久代或元空间、代码缓存)。Java虚拟机定义了若干个程序运

2021-08-06 19:37:48 76

原创 国内使用Maven下载失败的解决办法,2021.1 最新版

第一步:版本对应我使用的是idea2021.1和maven的版本是3.6.3版本,最新的3.6.8版本也测试过,用下面的方法都可以实现。第二步:下载maven百度搜索maven下载进入官网之后选择下载这个,之后放入指定的路径,进行解压第三步:进行镜像配置在刚刚解压的文件夹中找到这个conf文件夹,点击进入进去之后选中setting.xml这个文件,使用记事本打开划到最下面,找到 <!-- mirrors | This is a list of mirrors to be

2021-04-22 11:24:43 2320

原创 Mybatis小结

Mybatis小结idea中创建Mybatis项目Mybatis连接数据库的问题Mybatis的crud操作idea中创建Mybatis项目从maven中创建一个普通的项目点击next出现将红色箭头指向的取号名字 第一个和第三个是相同的 第二个是域名后置点击finish这是它的目录结构点击pom.xml将mybatis的依赖导入<dependencies> <!-- 这个是mysql驱动 这个要和自己的mysql 版本对应 我的mysql是 8.0.2

2021-03-20 10:49:54 122

原创 Mybatis中多对一的查询

数据库的搭建CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师'); CREATE TABLE `student` ( `id` INT(10) NOT NULL

2021-03-17 11:26:57 302 1

原创 在JavaWeb中连接数据库出现了空指针异常

在JavaWeb中连接数据库出现了空指针异常这是JavaWeb阶段的第一个错误,记录一下,希望可以帮到大家

2021-02-20 20:37:25 934

原创 Java中引进的接口

抽象类是从多个类中抽象出来的模板,如果将这种抽象进行的更加彻底一点,就可以提炼出一种更加特殊的“抽象类”—— 接口(interface)接口的概念我们在日常生活中经常会遇见到接口,这种实体类事物,比如:我们使用USB接口可以连接U盘,不可以用别的接口连接U盘,因此,USB接口就是定义的一个规范。我们在Java中所定义的接口也是遵循这样一种方法来的,接口定义了某一批类所需要遵守的规范,接口并不关心这些类的内部实现方法细节,它只规定了这批类必须提供的方法。因此接口定义的是多个类共同的公共的行为规范,这些

2020-09-28 23:11:03 389

原创 谈一下Java中的包装类

谈一下Java中的包装类Java是面向对象的程序设计语言,但是它也包含了8种基本数据类型,这8种基本数据类型不支持面型对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有成员变量、方法可以调用。这8中基本数据类型带来一定的方便性,例如进行简单、有效的常规数据处理。但在某些时候,基本数据类型也会有一些制约,例如在集合中要求传入必须是Object类,用基本数据类型就不可以传入,为了解决这种情况,Java提出了包装类的概念,为8中基本数据类型分别定义了相应的引用数据类型,并称之为基本数据类型的包装类

2020-09-15 22:26:24 109

原创 深入研究Java中的final关键字

final修饰符final关键字用于修饰类,变量和方法,用于表示它修饰的类,方法和变量不可被改变。final既可以修饰成员变量也可以修饰局部变量,形参。下面我们主要探讨一下final修饰不同成分的情况。一. final修饰成员变量成员变量是随类初始化或者对象的初始化而初始化的。当类初始化的时候,系统会自动为类变量分配内存,并分配默认值;当创建对象时,系统为该对象的实例变量分配内存,并分配默认值。当执行静态代码块的时候会给类变量进行赋值;当执行普通代码块或者构造器的时候会给实例变量进行赋值,。因此.

2020-09-09 16:09:12 142

原创 Java中类成员

static关键字修饰的成员就是类成员,有类变量,类方法,静态初始化块,静态内部类,static不能修饰构造器,以static修饰的成员就是类成员。类成员属于整个类,而不属于某个对象。类变量属于整个类,当系统第一次准备该类时,系统会为该类变量分配内存空间,类变量开始生效,直到该类被卸载,该类的类变量所占用的内存才联系垃圾回收机制回收。类变量的生存范围几乎等同于该类的生存范围。当类初始化完成后,类变量也就初始化完成。static修饰成员变量(属性):静态变量属性:按照是否使用static修饰,又分为静

2020-08-16 13:18:29 727 1

原创 Java中的抽象类

Java抽象类当我们在编写一个类时,常常会为该类定义一些方法,这些方法用来描述该类的行为方式,那么这些方法都有具体的方法体。但是在某些情况下,某个父类只知道其子类应该包含哪些方法,但无法准确的具体描述。当我们在定义一个图形时,这个类中提供了计算周长的算法,但是图形计算周长的方法,不一样,所以父类无法准确的知道其子类计算周长的方法。抽象正是解决这个问题的。抽象类和抽象方法抽象方法和抽象类都必须使用abstract修饰符来定义,有抽象方法的类只能定义成抽象类,抽象类里可以没有抽象方法。抽象方法和抽象

2020-08-16 12:39:51 162

原创 Java中的多态性

Java中引用变量有两个类型:一种是编译时的类型,一种是运行时的类型。编译时的类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译和运行时类型不一致,就可能出现了所谓的多态。public class Person { public int a = 2; public void outPut (){ System.out.println("我是一个人"); }}class Man extends Person{ public

2020-08-11 21:26:58 108

原创 super限定

如果需要在子类方法中调用父类被覆盖的实例方法,则可以使用super限定来调用父类被覆盖的实例方法。我们可以在之前写的重写的代码上进行修改class Person { private int age ; private String name; public void goWc() { System.out.println("我去上洗手间"); } }public class ManPeople extends Person { @Override public void goWc()

2020-08-08 12:42:53 99

原创 Java中重写父类的方法

子类扩展了父类,子类是一个特殊的父类。大部分时候子类是以父类为基础的,但是有时候子类需要重写父类的方法。比如说我们定义了一个Person类来表示人类。里面定义了一个方法为上洗手间,ManPeople 继承了这个类,Man上洗手间的方式和Woman上洗手间的地方有所不同,因此他要重写Person类中的方法。class Person { private int age ; private String name; public void goWc() { System.out.println("我去

2020-08-08 12:24:08 3339 2

原创 Java中的三大特征之一继承性

类的继承继承是面向对象的三大特征之一,一是实现软件复用的重要性手段。Java中具有单继承的特点,每个子类只有一个直接父类。继承的规定一个类可以被多个子类去继承。一个类只能有一个直接父类。也就是我们开头提到的单继承性。字符类是相对的概念。子类继承父类以后就获取了直接父类以及所有间接父类中声明的属性和方法。继承的特点Java中的继承通过extends关键字来实现,子类继承父类的语法结构如下:修饰符 class SubClass extends SuperClass { //类定义部

2020-08-08 12:00:25 183

原创 package.import关键字

packageJava中引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突,类文件管理等问题。使用package声明类或者接口所属的包时,声明在源文件的首行。包属于标识符,遵循标识符的命名规则和规范,要见名知意。每“.”一次就表示一层文件目录同一个包下不能有同名的类或者接口。不同的包下可以有同名的类或者接口。import 关键字import可以指向某个Java文件中的导入指定包层次下某个类或者全部类。import语句应该出现在package语句之后 类定义之前。.

2020-08-06 14:49:55 113

原创 深入构造器

构造器是一种特殊的方法,这个特殊的方法用于创建实例时执行初始化。构造器是创建对象的重要途径,因此Java必须提供一个或者一个以上的构造器。使用构造器来实现执行初始化构造器最大的用途就是在创建对象的时候执行初始化。我们在之前创建对象的时候。系统就为对象的实例进行了默认初始化,把整型的默认为0;布尔型的默认为false等等。如果程序员没有为Java类提供任何的构造器,则系统会为这个类提供一个无参数的默认构造器,这个构造器的执行体为空不做任何事情。我们如果需要改变这种初始化就需要通过构造器来实现。cla

2020-08-06 14:35:41 92

原创 Java中的this关键字

Java中提供了一个this关键字,this关键字总是指向调用该方法的对象。根据this出现的位置不同,this关键字可以引用两种情况:一种是构造器中正在初始化的对象。另一种是,在方法中调用该方法的对象。this关键字最大的作用是让类中的一个方法,访问该类中的另一个方法和实例。public class Person { String name; int age; int sex; public void study() { System.out.println("studying"); }

2020-08-06 14:08:24 106

原创 Java中的封装与隐藏

public class Student { String name; int age; String major; String interests; public void say() { System.out.println("名字是" + name + ",年龄是:" + age + ",主修科目为:" + major + ",兴趣爱好为 " + interests); } public static void main(String[] args) { Student s1

2020-08-06 13:46:27 497

原创 Java中再谈方法

一. 方法的重载Java中允许出现同一个类中定义多个同名的方法,只要形参列表不同就行。如果同一个类中包含了两个或者两个以上方法的方法名相同,但形参列表不同,则被称位方法重载。class OverLoad{public void sum (){}static int sum (int i ,int j){return i*j;}static int sum (int m ,int m){return i*j;}//不会构成重载}在上面的代码中,虽然有两个sum()方法,他们的形参

2020-08-05 14:22:08 156

原创 Java中面向对象的类和对象

一. 面向对象的思想Java是面向对象的的程序设计语言,Java语言提供了定义类、成员变量、方法等最基本的功能。类是用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在。Java中也支持面向对象的三大特征:封装、继承、多态,Java提供了private 、protected、和public三个访问控制修饰符来实现良好的封装性。提供了extends关键字来让子类继承父类,子类继承父类就可以继承父类中的属性和方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,

2020-08-04 13:10:54 733

原创 Java中的数组类型

Java中的数组从运行机制上是没有多维的,但是Java中支持多维结构的语法,下面我们就来谈一下Java中的一位数组个多维数组一.一维数组1.数组的理解数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。 2.数组的初始化一维数组的初始化分为静态初始化和动态初始化,静态初始化是在定义数组的同时给出数组元素的值,而动态初始化只是制定了数组的长度没有去给定数组的值,当然在数组中,初始化的时候,不能既给定了数组的长度,又给数组赋值

2020-08-02 21:12:12 4005

原创 Java中的循环结构

Java中的循环结构for循环for循环结构包括 初始化语句(init_statement),循环条件(test_statement),循环语句(body_statement),迭代条件(iteration_statement)for循环结构的格式如下for (init_statement;teat_statement;iteration_statemrent){ body_statemnt;}for循环结构的执行顺序是 先执行初始化语句(init_statemtent)然后再执行循环条件

2020-08-01 21:51:29 135

原创 Java中的选择结构

Java中的选择结构一. Java中的选择结构if-else - if-else中的格式编写如下if (logic expression) { statement; }//这是第一种形式if (logic expression) { statement; }else { statement; } // 这是第二种形式 if(logic expression) { statement; }else if (logic expression) {

2020-07-30 21:21:00 173

原创 Java中的算数运算和逻辑运算

Java中的算数运算和逻辑运算一、算数运算1、加(+) 和一般的现实生活的中用法相似2、减(-) 和一般的现实生活的中用法相似3 、乘(*) 和一般的现实生活的中用法相似4、除(/) 当/两边都是整型是其结果也是 整型,当有一个数为浮点型是结果为浮点型5、取模(%) 运算的数值应该为整数,而且运算结果的符号和被取模数的符号一致,也就是和第一个数一致。二、赋值运算1、= 一个等号为数值运算2、+= 运算时类型不会改变3、-= 运算时类型不会改变

2020-07-28 22:22:25 590

原创 Java中的数据类型

Java中的数据类型Java中的数据类型分为基本数据类型(primitive type)和引用数据类型(reference type)引用数据类型包括 接口(interface)、类(class)、数组(【】)基本数据类型又包括8种,为整型byte 占用1个字节(8bit),数据范围为-128-+127short 占用2个字节 (16bit),int 占用4个字节 (32bit),整型数据默认为int型字符型char 占用2个字节 (16bit) 用单引号表示 中间有且只能放

2020-07-27 22:24:20 79

原创 Java中Multiple markers at this line - Syntax error on token “)“, ; expected - void is an inv

Java中出现的错误Multiple markers at this line- Syntax error on token ")", ; expected- void is an invalid type for the variable main- Syntax error on token "(", ; expected这个是主函数放在了某一个函数中出现的语法错误,只要将这个主函数拿出来就好了。顺便说一下今天是第一次发博客哈哈哈...

2020-07-26 21:02:11 4769

空空如也

空空如也

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

TA关注的人

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