一、系统温习——黑马程序员Java+AI智能辅助编程全套视频教程

Java程序的基础语法

  1. 注释

注释的三种写法:①// 单行注释;②/*    */  多行注释;③/** */文档注释

补充:

       Java开发的软件,功能的最小单位是一个一个的 方法。

文档注释一般写在方法上面或类的上面。且在其上的注释内容会被提取到程序说明文档中去。

       注释只作用在代码阶段,编译后的class文件中注释已被自动去除。

       可以借用通义灵码选中代码后自动生成注释。

  1. 字面量

Java程序中数据的书写格式:①字符-必须使用单引号,有且仅有一个字符;②字符串-必须使用双引号,内容可有可无;③布尔值-只有true/false。

特殊字符:\n - 换行;\t – Tab缩进

  1. 变量

变量是内存中的一块区域,可以理解为用来装待处理数据的盒子。

格式: 数据类型 变量名称 = 数据

使用变量存储要处理的数据,编写代码更灵活,管理代码更方便。

变量装的数据可以被替换。

数据在计算机底层采用二进制存储,最小存储单元:字节(1B = 8bit)。

字符数据在计算机存的是ascii码表中对应的数字的二进制形式。

Java程序中二进制数据以0B或者0b开头;八进制以0开头;十六进制以0X或者0x开头。

Java基本数据类型有4大类8种

随便写一个整数字面量默认是int类型,如果希望字面量是long类型,则需要显式的指定,在字面量后加L或者l。随便写一个浮点数字面量默认是double类型,若希望字面量是float类型则需在字面量后加上F或f。

  1. 关键字、标识符

关键字是Java语言自己用的一些词汇,有特殊作用,称之为关键字。

标识符是名字(类名、变量名等),一般以数字、字母、下划线和美元符组成,不能以数字开头。变量名建议首字母小写,类名建议首字母大写。

  1. 方法

方法是一种用于执行特定任务或操作的代码块,代表一个功能,可以接收数据进行处理,并返回一个处理后的结果

方法的完整定义格式:

方法需要被调用才能执行,调用格式:方法名称(数据)

如果方法不需要返回数据,返回值类型必须声明成void(无返回值声明)方法内部不可以使用return返回数据。

方法可以重载:一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了。

方法重载只关心方法名称相同,形参列表不同(类型不同,个数不同,顺序不同)。

无返回值的方法中可以直接通过单独的return;立即结束当前方法的执行。

  1. 类型转换

存在不同类型的变量赋值给其他类型的变量

自动类型转换:类型范围小的变量,可以直接赋值类型范围大的变量。

类型范围大的变量,不可以直接赋值给类型范围小的变量,会报错,需要强制类型转换,强转可能导致数据(丢失)溢出,浮点型强转成整型,直接丢掉小数部分,保留整数部分返回

强制类型转换: 数据类型 变量2 = (数据类型)变量1

表达式的自动类型提升:在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。

表达式的最终结果类型由表达式中的最高类型决定

在表达式中,byte、short、char是直接转换成int类型参与运算的。

  1. 输入输出

输出:把程序中的数据展示出来。

输入:程序读取用户键盘输入的数据。

IDEA自动导包:Settings-搜索Auto import

  1. 运算符

Java中两个整数相除(/)的结果还是整数

%(取余)获得的是两个数据做除法的余数

可以在表达式中*1.0来使得获得的结果为小数。

+符号与字符串运算的时候用作连接符,其结果依然是一个字符串。

自增:++     放在某变量前或后,对变量自身的值+1

自减:--      放在某变量前或后,对变量自身的值 – 1

自增自减在变量前后单独使用没有区别。

如果不是单独使用,放前会先加后用;放后会先用后加。

赋值运算符(=),从右边往左看。

扩展赋值运算符:(隐含了强制类型转换

在java中判断是否相等使用的是“==”

三元运算符格式:条件表达式 ? 值1 : 值2;

计算关系表达式的值,若为true则返回值1,若为false,返回值2.。

^: 逻辑异或。前后条件相同返回false,不同返回true。

&& 短路与   判断结果和&一样,过程不同:左边为false,右边则不执行

|| 短路或       判断结果和 | 一样,过程不同:左边为true,右边则不执行

案例:健康计算器

需求:接收用户的输入(年龄、性别、体重、身高)并计算出用户的BMI(身体质量指数)和BMR(基础代谢率)。

二、刷选择题——牛客网Java题组

  1. Serializable接口

Serializable是一个标记接口(marker interface),它没有任何方法需要实现仅仅是标识这个类可以被序列化。当一个类实现了Serializable接口后,该类的对象就能够被转换为字节流,用于网络传输或持久化存储

  1. 子类无法直接访问父类的私有字段

类Main有一个实例变量private int num = 10;有一个public void printNum()方法,打印num。在main方法中,创建了一个Main的匿名子类,并重写了printNum()方法。

在匿名类中重写的方法里,直接访问了num。这里的num是Main类的实例变量,但它是private的。在子类(即使是匿名子类)中,不能直接访问父类的私有成员

如果要在子类中访问num,可以:将num改为protected或public。或者通过父类的公有/受保护的方法来访问(例如调用super.printNum()或提供一个getNum()方法)。

  1. Statement接口的继承关系

JDBC中各种Statement接口的继承关系如下:Statement是最基本的接口,PreparedStatement继承自Statement接口,而CallableStatement又继承自PreparedStatement接口。

Statement:用于执行静态SQL语句
PreparedStatement:预编译SQL语句,可以使用参数
CallableStatement:用于调用存储过程,继承了PreparedStatement的所有功能

三、刷面试陈述题——面试鸭

Java的优势

Java中的参数传递是按值还是按引用

在java中,参数传递只有按值传递,不论是基本类型还是引用类型。

基本数据类型传递的是值的副本即数值本身。对方法参数的任何修改都不会影响原始变量。

引用数据类型传递的是引用的副本即对象引用的内存地址。方法内可以通过引用拿到对象并修改对象的属性,但不能改变引用本身使其指向另一个对象。

基本数据类型存储在栈内存中,引用数据类型的变量存储的是对象在堆中的内存地址。引用类型变量作为参数传递时,传递的是这个地址的副本。

不可变类在多线程环境中不需要额外的同步控制,它们的状态一旦创建就不能改变

为什么java不支持多重继承

多继承会产生菱形继承

B、C都继承了A,而D又继承了B、C,当D要调用A中的方法时,因为B、C有不同的实现,此时不知调用哪个会出现歧义。

接口可以多实现,在java8之前接口无法定义具体方法实现,所以即使有多个接口子类必须自己实现方法,故不产生歧义。而java8之后出现默认方法,此时强制规定,若多个接口内有相同的默认方法,子类必须重写这个方法,不然编译期就会报错。

继承的东西无法改变,相当于天生遗传的基因;而接口的实现相当于能力的实现,能力可以后天培养,可以结合多个角度整合(重写)出自己的能力。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐