Java基础
一些Java的基础知识
friendsu
这个作者很懒,什么都没留下…
展开
-
Java 访问控制权限
protected 表示只能在本类、同包、子类中访问。public 表示公开的,在任何位置都可以访问。private 表示私有的,只能在本类中访问。以上的4个访问控制权限:控制的范围是什么?默认 表示只能在本类,以及同包下访问。protected 受保护。访问控制权限有哪些?private 私有。原创 2024-01-09 21:02:25 · 447 阅读 · 0 评论 -
static关键字,静态代码块和实例代码块
5、通常在静态代码块当中完成预备工作,先完成数据的准备工作,例如:初始化连接池,解析XML配置文件. . . . . . .4、所有static修饰的元素都称为静态的,都可以使用“类名.”的方式访问,当然也可以用“引用.”的方式访问。- 这当然和具体的需求有关,例如项目中要求在类加载的时刻/时机执行代码完成日志的记录。- 静态代码块是java为程序员准备的一个特殊的时刻,这个特殊的时刻被称为类加载时刻。2、实例代码块在构造方法执行之前执行,构造方法执行一次,实例代码块对应执行一次。原创 2023-12-16 16:26:28 · 397 阅读 · 0 评论 -
什么时候声明实例变量和静态变量
什么时候成员变量声明为实例变量呢?原创 2023-12-16 16:18:52 · 328 阅读 · 0 评论 -
java参数的传递?
方法调用的时候,涉及到参数传递的问题,传递的时候,java只遵循一种语法机制,就是将变量中保存的“值”传递过去了,只不过有的时候这个值是一个字面值,例:10,有的时候这个值是另一个 java 对象的内存地址,例:0x1234。java语言当中方法调用的时候涉及到参数传递的问题,参数传递实际上传递的是变量中保存的具体值。主要研究和学习的是方法在调用的时候,涉及到参数传递的问题,到底是怎么传递数据的呢?等同于:add(10);例: int i = 10;原创 2023-12-15 16:54:08 · 353 阅读 · 0 评论 -
关于 package 和 import
使用了 package 机制之后,类名不再是 Test01 了,类名是:com.bjpowernode.javase.day11.Test01。* 不是 java.lang 包下,并且不在同一个包下的时候,需要使用 import 进行引入。import 语句用来完成导入其它类,同一个包下的类不需要导入,不在同一个包下需要手动导入。- 运行:java com.bjpowernode.javase.day11.Test01。lang:language 语言包,是 java 语言的核心类,不需要手动引入。原创 2023-12-19 21:49:30 · 388 阅读 · 0 评论 -
java多态的基础语法
需要记忆:无论是向上转型还是向下转型,两种类型之间必须要有继承关系。关于java语言中的多态机制:【多态的基础语法】又被称为:强制类型转换。【需要加强制类型转换符】Cat 和 Bird 之间没有任何继承关系。2、面向对象三大特征:封装、继承、多态。* 向下转型(downcasting)没有继承关系,程序是无法编译通过的。* 向上转型(upcasting)Bird 继承 Animal。Cat 继承 Animal。- 子类型 --> 父类型。- 父类型 --> 子类型。又被称为:自动类型转换。原创 2023-12-16 20:54:52 · 339 阅读 · 0 评论 -
this 关键字
2、this是一个引用,this是一个变量,this变量中保存了内存地址指向了自身,this存储在 JVM 堆内存 java 对象内部。注意:当一个行为/动作执行的过程当中是需要对象参与的,那么这个方法一定要定义为“实例方法”,不要带 static 关键字。4、this可以出现在“实例方法”当中,this指向当前正在执行这个动作的对象。重点:没有 static 关键字的方法被称为“实例方法”,实例方法怎么访问?也就是说当前对象是不存在的。1、可以使用在实例方法当中,代表当前对象【语法格式:this.】原创 2023-12-15 17:49:34 · 318 阅读 · 0 评论 -
为什么要封装和封装的步骤
1、所有属性私有化,使用 private 关键字进行修饰,private 表示私有的,修饰的所有数据只能在本类中访问。但是对于使用照相机的人来说,操作起来是非常方便的是非常便捷的。1、封装之后,对于那个事物来说,看不到这个事物比较复杂的那一面,只能看到该事物简单的那一面。照相机就是一个很好的封装案例,照相机的实现原理非常复杂,非常复杂,但是对于使用者来说不需要关心内部的实现原理,只需要会操作遥控器就行。4、封装之后,对于事物本身,提高了安全性。2、封装之后才会形成真正的“对象”,真正的“独立体”。原创 2023-12-15 16:38:29 · 399 阅读 · 0 评论 -
关于 java 语言当中 final 关键字
6、final修饰的引用,一旦指向某个对象之后,不能再指向其它对象,那么被指向的对象无法被垃圾回收器回收。综合考虑,java 语言最终规定实例变量使用 final 修饰之后,必须手动赋值,不能采用系统默认值。final修饰的引用虽然指向某个对象之后不能指向其它对象,但是所指向的对象内部的内存是可以被修改的。4、final修饰的变量“一旦”赋值之后,不可重新赋值【不可二次赋值】5、final修饰的实例变量,必须手动赋值,不能采用系统默认值。1、final是一个关键字,表示最终的,不可变的。原创 2023-12-19 21:03:10 · 328 阅读 · 0 评论 -
javac 编译和 mysql 查询乱码问题
编译乱码问题:查询乱码问题:原创 2023-12-15 16:34:20 · 322 阅读 · 0 评论 -
java实例变量系统默认赋值是在什么时候完成的
不是,因为类加载的时候只加载了代码片段,还没来得及创建对象。所以此时实例变量并没有初始化。实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认赋值是在什么时候完成的呢?成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。实际上,实例变量的内存空间是在构造方法执行过程当中完成开辟的。实例变量又称为对象变量,也就是说,必须先有对象才能有对应的实例变量。系统在默认赋值的时候,也是在构造方法执行过程当中完成的赋值。是在类加载的时候吗?原创 2023-12-15 16:47:39 · 354 阅读 · 0 评论 -
Java导出图片正常显示
Java导出图片正常显示原创 2023-02-03 14:15:01 · 275 阅读 · 2 评论 -
敲完 java HelloWorld 回车,都发生了什么?
假设是“java HelloWorld”,那么类加载器会去硬盘上搜索:HelloWorld.class文件。类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM当中,类加载器的作用:加载类的。本质上类加载器负责去硬盘上去找“类”对应的“字节码”文件。假设是“java Test”,那么类加载器会去硬盘上搜索:Test.class文件。第二步:JVM启动之后,JVM会去启动“类加载器classloader”类加载器如果在硬盘上找不到对应的字节码文件,会报错,报什么错?原创 2023-12-23 20:24:31 · 331 阅读 · 0 评论 -
java 语言中的转义字符和整数型字面量表示形式(进制)
如果希望该“整数型字面量”被当做 long 类型来处理,需要在“字面量”后面添加 L/l。在 java 中,在任何情况下,整数型的“字面值/数据”默认被当做 int 类型处理。反斜杠 u 表示后面的是一个字符的 unicode 编码。在 java 中两个反斜杠代表了一个“普通的反斜杠字符”建议使用大写 L,因为小写 l 和 1 傻傻分不清。在 16 进制当中 10 表示 16。unicode 编码是十六进制的。1个 字节 = 8 个二进制位。java语言中“\”负责转义。关于java语言中的转义字符。原创 2023-12-25 20:47:12 · 402 阅读 · 0 评论 -
try...catch..finally 例
try…catch…finally例:public Integer add(Integer a, Integer b){try {System.out.println(“yyyy”);return a + b;} catch (Exception e) {e.printStackTrace();} finally {System.out.println(“hello”);}return 0;}控制台显示:i:nullyyyyhello和:7原创 2023-12-23 17:45:46 · 374 阅读 · 0 评论 -
java 什么是变量和字面量?
二进制为就是:满 2 进 1 位(0 1 10 11 100 101 . . . . . . . . . )每一天你会编写很多程序,你会遇到很多编译错误,也会遇到很多运行错误,你需要准备一个单独的文件来记录这。些信息,以及记录这些信息是怎么导致的,原因是什么,怎么去解决的,解决办法是啥?赋值运算符“=”的运算特点是:等号右边先执行,执行完之后赋值给左边的变量。存数据用的,而且这个是数据是可变的,所以叫做变量。这是必要的,要想称为一个调错高手,这是有必要的。字面量就是数据,数据就是字面量,是一样的。原创 2023-12-24 21:15:13 · 440 阅读 · 0 评论 -
java 注释说明
2、注释信息只保存在 java 源文件当中,java 源文件编译生成的字节码 class 文件,这个 class 文件中是没有这些注释信息的。3、在实际的开发中,一般项目组都要求积极的编写注释。这也是一个java软件工程师的基本素养。注释是对 java 源代码的解释说明。注释可以帮程序员更好的理解程序。4、注释需精简,主线清晰,每个注释都应该是点睛之笔。1、什么是注释,有什么用?原创 2023-12-23 20:32:26 · 354 阅读 · 0 评论 -
java 中的关键字
在SUN公司开发Java语言的时候,提前定义好了一些具有特殊含义的单词,这些单词全部小写,具有特殊含义,不能用作标识符。java 语言中是严格区分大小写的。public 和 Public 不一样等。切记:java 语言中的所有关键字都是全部小写。java 中的关键字。原创 2023-12-23 20:50:44 · 363 阅读 · 0 评论 -
java 具体的命名规范是哪些?
规范5:所有常量名:全部大写,并且单词和单词之间采用下划线衔接。StudentTest、UserTest,这是类名、接口名。变量名和方法名首字母小写,后面每个单词首字母大写。类名和接口名首字母大写,后面每个单词首字母大写。规范4:变量名、方法名有特殊要求。规范3:类名、接口名有特殊要求。USER_AGE:用户年龄。规范2:遵循驼峰命名方式。具体的命名规范是哪些?原创 2023-12-23 20:46:36 · 402 阅读 · 0 评论 -
关于 java 程序当中的数据?字面量
布尔型字面量:true、false 没有其它值了,表示真和假,true 表示真,false 表示假。字符串型字面量:“abc”,“a”,“b”,“大海”,,,,整数型字面量:1,2,3,4,5,-100,-23,,,,浮点型字面量:1.12,2.356,45.6,,,,而现实世界当中,有很多问题都是使用数据进行描述的。所有的字符串型只能使用 双 引号括起来。开发软件是为了解决现实世界中的问题。字符型字面量:‘a’,‘b’,‘中’主要看是双引号还是单引号。双引号的一定是字符串型。单引号的一定是字符型。原创 2023-12-23 20:54:50 · 348 阅读 · 0 评论 -
java 访问控制权限修饰符
4、当某个数据只希望子类使用,使用 protected 进行修饰。private < 缺省 < protected < public。3、访问控制权限修饰符可以修饰类、变量、方法. . . .public 表示公开的,在任何位置都可以访问。private 表示私有的,只能在本类中访问。1、访问控制权限修饰符来控制元素的访问范围。protected 同包,子类。原创 2023-12-20 20:52:25 · 349 阅读 · 0 评论 -
Java语言的概述以及Java语言的发展史。
J2SE:Java Platform, Standard Edition,标准版(基础,要学java,必须先学习SE。在 Java 语言当中真正操作内存的是:JVM(Java虚拟机)所有的java程序都是运行在Java虚拟机当中的。Java语言底层是 C++,所以 JVM 是用 C++ 语言写好的一个虚拟的电脑。JDK(Java开发工具箱,做Java开发必须安装的,这是最根本的一个环境。例如:OA办公系统,保险行业的系统,金融行业的系统,医院的系统)如果是 Java 语言表示,程序员是飞机上的乘客。原创 2023-12-21 22:09:40 · 354 阅读 · 0 评论 -
关于java语言中的浮点型数据
关于java语言中的浮点型数据。double 8个字节。float 4个字节。原创 2023-12-25 20:48:20 · 354 阅读 · 0 评论 -
java 生成帮助文档
表示将VarTest02.java类生成帮助文档,放在javaapi文件下。加上 -encoding utf-8解决乱码。将作者、版本加进去生成。原创 2023-12-24 20:40:46 · 366 阅读 · 0 评论 -
java 标识符
例如:public, class, static, void 等都是关键字,关键字是不能做标识符的。main是一个方法的名称,属于标识符,但这个标识符不能修改,因为这个main是SUN公司规定固定的。规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符合$组成,不能含有其它符号。命名规则属于语法机制,必须遵守,不遵守命名规则标识不符合语法,编译器会报错。规则4:标识符是严格区分大小写的。规范5:所有常量名:全部大写,并且单词和单词之间采用下划线衔接。注意:类名是标识符,标识符“中”不能有空格。原创 2023-12-23 20:41:42 · 361 阅读 · 0 评论 -
java 程序从编写到最终运行经历了哪些过程?
第六步:如果 xxx.java 文件中编写的源代码是符合语法规则的,编译会通过,如果 xxx.java 文件中编写的源代码违背了语法规则,那么编译器会报错,编译器报错之后 class 文件是不会生成的,只有编译通过了才会生成 class 字节码文件。在 windows 上编译,编译之后生成了“字节码”,把“字节码”放到 Linux 上运行,完全可以,因为 Java 是跨平台的。源代码不能直接执行,需要先进行编译,生成源代码对应的“字节码”,JVM 可以识别的是字节码。没有字节码文件程序是无法运行的。原创 2023-12-22 21:49:22 · 364 阅读 · 0 评论 -
Java 面向对象的三大特征之封装
1、static 修饰的统一都是静态的,都是类相关的,不需要 new 对象。另外封装了之后,对于我们使用者来说,我们是看不见内部的复杂结构的,我们也不需要关心内部有多么复杂,一个类体当中的数据,假设封装之后,对于代码的调用人员来说,不需要关心代码的复杂实现,注意:只要是方法,不管是静态方法、实例方法、构造方法,它们在运行的时候都是需要压栈。如果这个类型的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间。2、当一个属性是类级别的属性,所有对象的这个属性的值是一样的,建议定义为静态变量。原创 2024-01-03 22:11:16 · 1027 阅读 · 0 评论 -
java 运算符
/ 编译器检测到 x + 1 是int类型,x 是byte类型,1 是 int 类型,所以是 int 类型。// 使用短路与&&的时候,当左边的表达式为false的时候,右边的表达式不执行,这种现象被称为短路。‘男’ : ‘女’;// 得出结果为 ‘女’;布尔表达式的结果为 false 时,表达式 2 的执行结果作为整个表达式的结果。所以,当左边的表达式结果是true的时候,右边的表达式不需要执行,此时会短路。布尔表达式的结果为 true 时,表达式 1 的执行结果作为整个表达式的结果。原创 2023-12-26 21:44:00 · 379 阅读 · 0 评论 -
Java 面向对象的三大特征之继承和多态
(5)java 中的类没有显示的继承任何类,则默认继承 Object 类,Object 类是 java 语言提供的根类,(2)java中的继承只支持单继承,不支持多继承,C++ 中支持多继承,这也是 java 体现简单性的一点,换句话说,假设以后的开发中有一个 A 类,有一个 B 类,A 类和 B 类确实也有重复的代码,那么它们两个之间就可以继承吗?Object 是所有类的超类,类体系结构中的根。当子类对父类继承过来的方法进行“方法覆盖”之后,子类对象调用该方法的时候,一定执行覆盖之后的方法。原创 2024-01-04 21:52:58 · 839 阅读 · 0 评论 -
理解字符编码和一些 Java 转义字符
字符编码是人为制定的,一个字典表,字典中描述了转换关系。编码和解码采用的不是同一套字符编码方式。unicode:java 中采用的统一了全球所有的文字。原创 2023-12-30 20:34:28 · 351 阅读 · 0 评论 -
java 控制语句
这样条件表达式的结果才有可能从 true 变成 false,从而终止 for 循环的执行,如果缺失更新表达式,很有可能会导致死循环。循环体结束之后,执行更新表达式。先执行循环体当中代码,执行一次循环体之后,判断布尔表达式的结果,如果为 true,则继续执行循环体,拿“值”与“值1”进行比较,如果相同,则执行该分支中的java语句,然后遇到“break;更新表达式的作用是:控制循环的次数,换句话说,更新表达式会更新某个变量的值,如果“值”与“值1”不相等,会继续拿“值”与“值2”进行比较,如果相同,原创 2023-12-26 22:35:43 · 1027 阅读 · 0 评论 -
java 类和对象的概念
java中规定:参数传递的时候,和类型无关,不管是基本数据类型还是引用数据类型统一都是将盒子中保存的那个“值”复制一份,传递下去。类实际上在现实世界当中是不存在的,是一个抽象的概念,是一个模板,是我们人类大脑进行思考、总结、抽象的一个结果。不管你是基本数据类型,还是引用数据类型,实际上在传递的时候都是将变量中保存的那个“值”复制一份,传过去。引用是:但凡是变量,并且该变量中保存的内存地址指向了堆内存当中的对象的都是引用。第二:画图的时候,图上的图形应该有先后顺序,先画什么,再画什么,必须是有顺序的。原创 2024-01-02 21:51:56 · 548 阅读 · 0 评论 -
Java 八大基本数据类型详细介绍
第四条:当一个整数没有超出 byte, short, char 的取值范围时,可以直接赋值给 byte, short, char 类型的变量。第五条:byte, short, char 混合运算的时候,各自先转换成 int 再做运算。第六条:多种数据类型混合运算的时候,先转换成容量最大的那一种再做运算。第三条:强制类型转换需要加强制类型转换符。第一条:只有 boolean 不能转换,其它都行。char 可以存储1个汉字,用单引号括起来。char 可以取到更大的正整数。第二条:自动类型转换。原创 2023-12-30 20:52:28 · 374 阅读 · 0 评论 -
java 方法覆盖和静态方法存在方法覆盖吗?
编译的时候 move() 方法是 Animal 的。运行的时候自动调用到子类重写 move() 方法上。方法覆盖只是针对于“实例方法”,“静态方法覆盖”没有意义。(这是因为方法覆盖通常和多态联系在一块。没有多态机制,方法覆盖也可以没有,如果父类的方法无法满足子类业务需求的时候,所以,一般情况下,我们会说静态方法“不存在”方法覆盖。不探讨静态方法的覆盖。1、方法覆盖需要和多态机制联合起来使用才有意义。假设没有多态机制,只有方法覆盖,你觉得有意义吗?没有多态机制的话,方法覆盖可有可无。方法覆盖和多态不能分开。原创 2024-01-05 21:48:22 · 426 阅读 · 0 评论 -
java 太计较变量的数量会有什么后果呢?
因为在后面代码中还需要访问这个数据。重复的访问这个数据。太计较变量的数量会有什么后果呢?后果2:可读型差也可能会牵连到代码的开发效率。注意:在编码过程中,有一些变量名是必须定义的。其实计算机内存不差这个。后果1:代码的可读性差。原创 2024-01-01 21:47:19 · 384 阅读 · 0 评论 -
java八种数据基本类型转换的时候需要遵循哪些规则?
如果整数型字面量没有超出 byte, short, char 的取值范围,可以直接将其赋值给 byte, short, char 类型的变量;第五条:byte, short, char 类型混合运算时,先各自转换成 int 类型再做运算;因为 char + short + byte 混合运算的时候,会各自先转换成 int 再做运算。多种数据类型做混合运算的时候,最终的结果类型是“最大容量”的对应的类型。第六条:多种数据类型混合运算,各自先转换成容量最大的那一种再做运算。但运行时可能出现精度损失,谨慎使用;原创 2023-12-25 20:56:48 · 528 阅读 · 0 评论 -
Java中 super 和 this 对比着学习
在父和子中有同名的属性,或者说有相同的方法,如果此时现在子类中访问父中的数据,必须使用“super.”加以区分。this() 只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中其它的构造方法,目的是:代码复用。2、注意:在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向下调用它的父类的。super() 只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中的构造方法,super 不是引用。父中有,子中又有,如果想在子中访问“父类的特征”,super. 不能省略。原创 2024-01-05 22:18:44 · 372 阅读 · 0 评论 -
Java 抽象类和接口以及抽象类和接口的区别
面向抽象编程,不要面向具体编程,降低程序的耦合度,提高程序的扩展力。对于计算机来说,一个机箱上有多个接口,一个接口是接键盘的,一个接口是接鼠标的,一个接口是接电源的,”结尾的,但他们都不是抽象方法,2、当一个非抽象的类实现接口时,必须将接口中所有的抽象方法全部实现(覆盖、重写)。接口 A 和接口 B 虽然没有继承关系,但是写代码的时候,可以互转。10、重要结论:一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现了。这是 java 语法上强行规定的,必须的,不然 java 编译器就会报错。原创 2024-01-07 21:54:03 · 919 阅读 · 0 评论 -
java 方法
当调用的方法在同一个类中,“类名.”可以省略;当调用的方法不在同一个类中,“类名.”不能省略。方法(英语单词:methhod)是可以完成某个特定功能的并且可以被重复利用的代码片段。在 C 语言中,方法被称为“函数”。在方法调用的时候,什么时候“类名.”是可以省略的,什么时候不能省略?局部变量有一个特点:方法结束之后,局部变量占有的内存会自动释放。在方法体中处理业务逻辑代码的时候需要数据,数据来源就是这些形参。方法体当中编写的是业务逻辑代码,完成某个特定功能。在方法体中的代码遵循自上而下的顺序依次逐行执行。原创 2023-12-31 22:07:35 · 373 阅读 · 0 评论 -
java 构造方法
(1)当一个类中没有提供任何构造方法,系统默认提供一个无参数的构造方法。2、当一个类没有提供任何构造方法,系统会默认提供一个无参数的构造方法。实际变量没有手动赋值的时候,实际上系统会默认赋值,那么这个默认赋值操作是在什么时机进行的?构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。(2)当一个类中手动的提供了构造方法,那么系统将不再默认提供无参数构造方法。实例变量是在构造方法执行的过程中完成初始化的,完成赋值的。(3)无参数构造方法,和有参数的构造方法都可以调用。原创 2024-01-02 22:14:26 · 398 阅读 · 0 评论