JAVA复习总结 一( 详细,干货!)

首先了解下Java的运行机制

以下面代码为例:

  1. 首先使用javac Hello.java命令,开启Java编译器并进行编译,生成一个.class的字节码文件。
  2. 使用java Hello命令启动Java虚拟机运行程序(Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类的加载,它是由类加载器完成的,然后由虚拟机(JVM)针对加载到内存的Java类进行解析执行,然后就可以看到运行结果了)。
class Hello{
    public static void main(String[] args){
        System.out.println("HelloWorld");
    }
}

一些简单的点就不写了(都有哪些数据类型,语法格式之类的),书上随便翻翻都能找到的就不写了哈。

一、关键字

(1)被Java语言赋予特定含义的单词
(2)特点:
全部小写。
(3)注意事项:
goto和const作为保留字存在。
在使用IDE和高级记事本的时候,关键字会有特殊颜色标记

二、命名规则:

  • 组成规则:
    A:英文大小写字母
    B:数字
    C:$和_

  • 注意事项:
    A:不能以数字开头
    B:不能是java中的关键字
    C:区分大小写

  • 常见的命名规则(见名知意)

  1. 包 全部小写
    单级包:小写
    举例:lala,haha
    多级包:小写,并用.隔开
    举例:cn.itcast.lianxi
  2. 类或者接口
    一个单词:首字母大写
    举例:Student,Name
    多个单词:每个单词首字母大写
    举例:HelloWorld,StudentAge
  3. 方法或者变量
    一个单词:首字母小写
    举例:name,age
    多个单词:从第二个单词开始,每个单词首字母大写
    举例:studentAge
  4. 常量
    全部大写
    一个单词:大写
    举例:PI
    多个单词:大写,并用_隔开
    举例:STUDENT_NAME

三、注释

注释分为:

  1. 单行注释 //
  2. 多行注释 /* */
  3. 文档注释 /** */

这里就说一下之前我遇到的一个问题吧



/*
 * public static void main
 * System.out.println();
 */
 // 上下这两种效果是一样的,这一点相信大家肯定通过实验证明了
/*
public static void main
System.out.println();
*/

刚开始我实验发现两个效果一样,我那时也很迷茫不知道为什么好多都采用第一种方法,它不麻烦吗,当时就想会不会还有更深层次的原因。后来看了Java编程思想一书后,才知道根本没有,就是为了好看,因为在进行编译时/* */之间所有东西都会被忽略,所以并没有什么两样

三、变量

(1)变量的简介

  • 什么是变量:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。在程序的执行过程中,其值在某个范围内可以发生改变的量。
  • 一个变量与一个类型相关联,并且只能够存储该特定类型的值。
  • 变量的定义格式:
  1. 数据类型 变量名 = 初始化值
  2. 数据类型 变量名;
    变量名 = 初始化值;
  3. 可以使用逗号隔开声明多个同类型变量。例如:int a = 17, b = 30;(不过这样看起来,代码会显得乱一些)

注意:"="在这里不是指等于的意思,指的是赋值的意思:就是说把右边的值赋给(存放到)左边,至于Java中的等于后面会说。

(2)变量的类型转换
在程序中,当把一种数据类型赋给另一种数据类型是,需要进行数据类型转换。根据转换的方式不同,可分为两种:自动类型转换和强制类型转换。

  1. 自动类型转换(隐式类型转换),指的是两种数据类型在转换过程中不需要显式的声明(强制类型转化),要自动类型转换必须要满足两个条件:第一个条件是两种数据相互兼容,第二个条件是目标类型的取值范围大于原来类型的取值范围。

默认转换

  • 从小到大
  • byte,short,char – int – long – float – double
  • byte,short,char之间不相互转换,直接转成int类型参与运算。

例:

// 数据类型都是整数类型,目标类型的取值范围大于原来类型的取值范围
// 程序将byte类型b自动转为int类型
byte b = 6;
int x = b;

在这里插入图片描述
输出结果是9

  1. 强制类型转换(显式类型转换),指的是两种数据类型不兼容或者目标类型小于原类型时,无法隐式转换,就需要用到显示类型转换(当兼容类型向下强制转换时,会出现精度丢失的情况)。

格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据);

int a = 4;
byte b = a;
System.out.println(b);

会报错:可能会损失精度,而在eclipse上面在这里插入图片描述
用上面方法已经无法转换了,但是可以这样:

     int b = 8;
     // 括号直接声明就可以了,程序正常运行
     byte c =(byte) b;
     System.out.println(c);

四、运算符

算数运算符
  1. +(加法):相加运算符两侧的值,如 A + B。
  2. -(减法):左操作数减去右操作数,如 A - B。
  3. *(乘法):相乘操作符两侧的值,如 A * B。
  4. /(除法):左操作数除以右操作数,如 B / A。
  5. %(取余):左操作数除以右操作数的余数,如 B % A。
  6. ++(自增): 操作数的值增加1,如 B++ 或 ++B 。
  7. –(自减):操作数的值减少1,如 B-- 或 --B 。
int x = 1 + 1 // 2
int y = 1 - 1 // 0
int a = 1 * 2 // 2
int b = 4 / 2 // 2
int c = 4 % 3 // 1
int i = 1,j = 2;
i++ // 2
j-- // 1
  • +的用法:
  1. 加法
  2. 正号
  3. 字符串连接符
  • ++和–的用法
  1. 它们的作用是自增1或者自减1
  2. 使用:
    单独使用:
    放在操作数据的前面和后面效果一样。
    a++或者++a效果一样。

参与操作使用:
放在操作数的前面:先自增或者自减,再参与操作
int a = 5;
int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 5;
int b = a++;

赋值运算符
  • =,+=,-=,*=,/=,%=等
  1. =:右边赋值给左边
  2. +=:两边相加赋值给左边
  3. -=:左边减右边赋值给左边
  4. *=:两边想乘赋值给左边
  5. /=:左边除右边(上面的都一样,不过为了简便写了两边)赋值给左边
  6. %=:左边对右边取余赋值给左边
  • =叫做赋值运算符,也是最基本的赋值运算符 int x = 5; 把5赋值给int类型的变量x。
  • 扩展赋值运算符的特点 隐含了自动强制转换。(在变量赋值时,当两种类型不兼容或者目标类型取值范围小于原类型时,需要强制进行转换,例如将一个int类型的值赋值给一个byte类型时,就需要强制类型转换,然而在+=,-=,*=,/=,%=这几个运算符中进行赋值时,强制类型会自动转换完成,程序不需要进行任何显式声明)
     int a = 18;
     byte b = 5;
     b += a;
     System.out.println(b);// 输出结果23,这样并不需要任何显式声明

比较运算符

  1. ==,!=,<,>,<=,>=
  2. 无论运算符两端简单还是复杂最终结果是boolean类型。
  3. 注意:千万不要把==写成了=

逻辑运算符

  • &,|,^,!,&&,||
  • 逻辑运算符用于连接boolean类型的式子
  • 结论
  1. &:有false则false
  2. |:有true则true
  3. ^:相同则false,不同则true。(^的特殊用法
    一个数据针对另一个数据位异或两次,该数不变)
  4. !:非true则false,非false则true
  5. &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
  6. ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

短路现象:就是一旦能够明确无误的确定整个表达式的值,就不会再计算余下部分了。

这次的内容先到这里,有问题的话欢迎评论区提问。

  • 29
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
期末考试题型: 一、 填空题(本题共15空 ,每空1分,共15分。) 二、 单项选择题(本题共20小题,每题1分,共20分。) 三、 是非题(对划“√”,错划“×”,本题共10小题,每题1分,共10分。) 四、 简答题(本题共5小题,每小题5分,共25分。) 五、 程序填空题(本题共5空 ,每空2分,共10分。) 六、 编程题(本题共2小题,每小题10分,共20分。) 二、填空题 1、Java语言是一种完全的_面相对象___程序设计语言。 2、布尔型常量有两个值,它们分别是_true__、_false___。 3、在定义一个方法时,一般都要指明该方法的返回值类型,如果它不返回任何值,则必须将其声明成 void 。 4、在Java的语言环境中已经包含了一组相关的核心类库,它们属于Java.lang包。 5、写出完整的main方法的声明 public static void main(String args[]) 。 6、要设计一个Applet小程序,必须先引入包 java.applet 。 7、设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为:2.75___ 8、被关键字_final___修饰的方法是不能被当前类的子类重新定义的方法。 9、Java中类成员的限定词有以下几种:private, _protected__, public__, 默认友好。 10、基类的公有成员在派生类中的访问权限由_基类___决定。 11、用static修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。静态方法只能处理用关键字_static___修饰的数据。 12、在Java中有一种叫作__构造方法__的特殊方法,我们在程序中用它来对类的对象成员进行初始化。 13、面向对象技术具有_封装性___、_继承性___、_抽象性___、多态性等特性。 14、Java中所有类都是类 _Object___的子类。 15、顺序执行以下两个语句的输出结果是: 10 。 String s = “我喜欢学习Java!”; System.out.println(s.length( )); 16、据程序的构成和运行环境的不同,Java源程序分为两大类: Application 程序和 Applet 程序。 17、如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生 4 个文件名与类名相同而扩展名为 class 的字节码文件。 18、开发与运行Java程序需要经过的三个主要步骤为 编辑源文件 、 编译器编译生成字节码文件 和 解释器执行 。 19、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet 类的子类并且存储该源程序文件的文件名必须为 MyApplet.java 。 20、 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令: javac MyJavaApplication.javajava MyJavaApplication 。 21、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用 2 字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用2 字节内存空间。 22、在Java程序中定义的类有两种成员: 静态成员 、 实例成员 。 23、Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,这个主类是指包含 main 方法的类;在Java Applet里,这个主类是一个系统类 Applet 的子类。 24、创建一个名为 MyPackage 的包的语句是 package MyPackage ; , 该语句应该放在程序的位置为: 程序中非注释行的第一行 。 25、 抽象或abstract 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 最终后final 方法是不能被当前类的子类重新定义的方法。 26、多态是指 一种定义,多种实现 ,在Java中有两种多态,一种是使用方法的 重载 实现多态,另一种是使用方法的 覆盖 实现多态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹈鹕吃吃吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值