【入坑Java第二天】

基本语法

注释的作用

  • 注释是对代码的解释和说明,其目的是让程序员能够更加快速的理解代码。它是编写程序时,写程序的人给一个语句、程序段等的解释或提示,能提高程序代码的可读性。我认为添加注释,是为了程序更容易理解与维护,特别是维护,更是对自己代码负责的一种体现。 注释在编译的时候不会生成到 class 字节码文件当中,它只在 java 源文件中保留。

注释的三种方式

  • 第一种:单行注释,语法格式如下:

    // 单行注释,两个正斜杠后面的内容被注释
  • 第二种:多行注释,语法格式如下:

    /*
    * 这里的注释信息为多行注释:
    * 第 1 行注释信息
    * 第 2 行注释信息
    */
  • 第三种:javadoc 注释,语法格式如下:

    /**
    * 这里的信息是 javadoc 注释
    * @author 作者名字
    * @version 版本号
    * @since 自从哪个版本号开始就存在了
    */  

    注意:对于 javadoc 注释来说,这里的注释会被 JDK bin 目录下的 javadoc.exe 命令解析并生成帮助文档(生成帮助文档后期做项目的时候大家会接触到的)。

注释应该怎么写

  • 编写注释是程序员最基本的素质,养成编写注释的好习惯,要有编写注释的意识。当然,写注释也是有技巧的,不是所有位置都写,不是把写的代码原版翻译过来,老程序员往往在写注释的时候,不多不少,能够做到恰到好处,几句话就可以描述清楚程序的核心功能。

  • 通常要在类和接口上写注释,这一部分注释是必须的。在这里,我们需要使用 javadoc 注释,需要标明:创建者,创建时间,版本,以及该类的作用。在方法中,我们需要对入参,出参,以及返回值,均要标明。对常量,我们需要使用多行注释,进行标明该常量的用途。在关键算法上,添加注释并且按照顺序依次标明,写明白该方法为什么这么做。

  • 记住:注释的作用不在于表示代码的含义,而在于表示代码的功能。希望在以后的课程当中通过慢慢的培养,能够写一手漂亮的注释,当然,目前大家只需要掌握注释有哪几种,分别写到什么符号里就行了。

为 HelloWorld 提供注释

/**
* 我的第一个 Java 程序问世了
* @author 南阳道人
* @version 1.0
* @since 1.0
*/
public class HelloWorld {
 /**
 * 这是程序的入口
 * @param args 参数
 */
 public static void main(String[] args) {
    // 向控制台输出一段话
    System.out.println("Hello,World!");
 }
}

public class 和 class 的区别

  • 定义 public class 的类,只能定义一个,并且要求此类名必 须和 java 源文件名保持一致。

  • 一个 java 源文件可以定义多个 class。

  • 在实际的开发中,虽然一个 java 源文件可以定义多个 class,实际上这是不规范的, 比较规范的写法是一个 java 源文件中只定义一个 class。

标识符都可以标识什么

  • 在 java 源程序当中,标识符可以用来标识:

  • 类名, 例如:Student 学生类、User 用户类、Product 商品类、Order 订单类等。

  • 接口名,例如:Runable 可运行的、Comparable 可比较的等。

  • 变量名,例如:name 名字、age 年龄、birth 生日、length 长度等。

  • 方法名,例如:login 登录、logout 登出、eat 吃、drink 喝等。

  • 常量名,例如:LOGIN_SUCCESS、ACCESS_TOKEN 等。

标识符命名规则

  • 标识符只能由数字、字母、下划线“_”、美元符号“$”组成,不能含有其它符号。

  • 标识符不能以数字开始。

  • java 关键字和保留字不能作为标识符。

  • 标识符严格区分大小写。

  • 标识符理论上没有长度限制。

标识符命名规范

  • 见名知意:看到这个单词就知道它表示什么,增强程序的可读性,例如:Student 则表示学生类型,User 则表示用户类型。

  • 遵循驼峰命名方式:可以很好的分隔单词,每个单词之间会划清界限,同样也是增强程序的可读性,例如:getName 则表示获取名字。

  • 类名、接口名首字母大写,后面每个单词首字母大写,这是遵守驼峰命名方式的。

  • 变量名、方法名首字母小写,后面每个单词首字母大写,这也是遵守驼峰命名方式的。

  • 常量名全部大写,单词和单词之间使用“_”衔接,为了表示清楚含义,不要怕单词长,例如:INT_MAX_VALUE 则表示 int 类型最大值。

关键字

关键字含义
byte字节类型
short短整形
int整形
long长整形
float浮点型(单精度)
double浮点型(双精度)
boolean布尔型
char字符型
abstract表明类或者成员方法具有抽象属性
assert断言,用来进行程序调试
break提前跳出一个块
case用在switch语句中,表示一个分支
catch用在异常处理中,用来捕捉异常
class声明一个类
const保留关键字,没有具体意义
continue回到一个块的开始
default表示默认
do用在do-while循环结构中
else用在条件语句中
enum枚举
extends继承
final最终的
finally用在异常中,用来声明一个肯定会被执行的语句
for一种循环结构
if条件语句
implements表面一个类实现了给定的接口
import导入的包
instanceof用来测试一个对象是否是指定类型的实例对象
interface接口
native用来声明一个方法是由计算机相关的语言实现的
new用来创建新的实例对象
package
private访问控制方式:私有的
protected访问控制方式:受保护的
public访问控制方式:公共的
return从成员方法中返回数据
static静态的
strictfp用来声明FP_strict表达式算数规范
super表明当前对象的父类型的引用或者构造方法
switch分支语句结构
synchronized表明一段代码需要同步执行
this当前
throw抛出一个异常
throws声明在当前定义的成员方法中所有需要抛出的异常
rty尝试一个可以抛出异常的程序块

变量

  • 分类

    • 成员变量

    • 局部变量

    • 静态成员变量(静态变量)

    • public class Test {
          int x = 20; // 实例变量(成员变量)
          static int y = 200; // 静态变量
          public static void sum(int a, int b){ // 局部变量 a 和 b
          int firstNum = 100; // 局部变量
          }
      }

  • 赋值

    • 数据类型 变量名 = 值;

基本数据类型

  • 通过上表我们可以看出八种基本数据类型中 byte 占用 1 个字节,short 占用 2 个字节,int 占用 4 个字节,long 占用 8 个字节,float 占用 4 个字节,double 占用 8 个字节,boolean 占用 1 个字节,char 占用 2 个字节。

  • 那么字节是什么呢,这个大家要知道 1 个字节是 8 个比特位,1 个比特位是什么,1 个比特位就是一个 1 或 0,或者说 1 个比特位就是 一个二进制位。也就是说 1 个字节是由 8 个 1 和 0 组成的二进制数字串。

引用数据类型

  • String(字符串),枚举,自定义引用......

基本数据类型转换

  • 基本数据类型之间是存在固定的转换规则的,现总结出以下 6 条规则,无论是哪个程序, 将这 6 个规则套用进去,问题迎刃而解:

  • 八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换;

  • 如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给 byte,short,char 类型的变量;

  • 小容量向大容量转换称为自动类型转换,容量从小到大的排序为:byte < short(char) < int < long < float < double,其中 short 和 char 都占用两个字节,但是 char 可以表示更大 的正整数;

  • 大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但 运行时可能出现精度损失,谨慎使用;

  • byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;

  • 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;

运算符概述

  • 运算符是指对操作数的运算方式。组成表达式的 Java 操作符有很多种(什么是操作数和操作符,例如 1+2,其中 1 和 2 都是操作数,+是操作符,操作符和操作数联合起来构成表达式)。 运算符按照其要求的操作数数目来分,可以有单目运算符(1 个操作数)、双目运算符(2 个 操作数)和三目运算符(3 个操作数)。运算符按其功能来分,有算术运算符、赋值运算符、 关系运算符、逻辑运算符、位运算符、条件运算符、字符串连接运算符和其他运算符。常见的 运算符如下所示:

  •  

算术运算符

  • 算术运算符包括:

    • +(两个数字求和)

    • -(两个数字相减)

    • *(两个数字乘积)

    • /(两 个数字相除)

    • %(两个数字取模或者求余)

    • ++(单目运算符,对数字自加 1)

    • --(单目 运算符,对数字自减 1)

关系运算符

  • 关系运算符主要是完成数据和数据之间的比较,比如:5>3,结果是 true(真),5>10, 结果是 false(假)。

  • 关系运算符都有哪些:>、>=、<、<=、==、!=。

逻辑运算符

  • 逻辑运算符主要包括逻辑与(&),逻辑或(|),逻辑异或(^),短路与(&&),短路 或(||)。所有逻辑运算符的特点是操作数都是布尔类型,并且最终的运算结果也是布尔类型。 逻辑运算符的基本运算规则如下表所示:

  •  

赋值运算符

  • 赋值运算符: =、+=、-=、=、/=、%=。

  • 赋值类的运算符包括基本赋值运算符(=)和扩展的赋值运算 符(+=、-=、*=、/=、%=)。

条件运算符

  • 条件运算符属于三目运算符。

  • 它的语法结构是:布尔表达式?表达式 1:表达式 2。

  • 运行原理:先判断布尔表达式的结果是 true 还是 false,如果是 true,则选择表达式 1 的结果作为整个表达式的结果,反之则选择表达式 2 的结果作为整个表达式的结果。

字符串连接运算符

  • 在 java 语言中所有的字符串都使用半角双引号括起来的,字符串属于引用数据类型,不属于基本数据类型的范畴。

  • 怎么定义一个字符串的变量呢?例如:String name = “jack”;

  • 在 java 编程中对字符串的操作是非常频繁的,例如字符串的连接操作,此时就需要使用“+”字符串连接运算符了。 实际上“+”运算符在 java 语言中有两个作用,作用一是对数字进行求和运算,作用二就是字符串连接运算,那么它在什么时候是进行求和,什么时候又进行字符串连接呢?大家可以 这样进行区分,当“+”运算的时候,两边的操作数都是数字的话,一定会进行求和运算,只 要其中有一个操作数是字符串类型,那么一定会进行字符串拼接运算,字符串拼接之后的结果还是字符串类型。需要注意的是,当一个表达式当中有多个“+”,并且在没有小括号的前提下,遵循自左向右的顺序依次执行。

  • public class Test{
        public static void main(String[] args){
            
            // 定义一个字符串
            String s = "张三";
            // 定义一个整形
            int i = 100;
            // 进行拼接
            String val = s+i;
            System.out.println(val);
            
        }
    }
    结果:张三100

    控制语句框架

 

控制语句概述

  • 控制语句即用来实现对程序流程的选择、循环、转向 和返回等进行控制。

  • Java 语言中共有 8 种控制语句,可以分为“选择语句”,“循环语句”, “转向语句”,“返回语句”四类。

  • 那么,这 8 种控制语句分别是什么呢?

    • if 语句、switch 语 句。

    • for 循环、while 循环、do..while 循环。

    • break 语句、continue 语句、return 语句。

    • 其中 if 和 switch 语句属于选择语句,for、while、do..while 语句属于循环语句,break 和 continue 语句属 于转向语句,return 属于返回语句。

if分支语句

  • if 语句的编写方式归纳为以下四种

  •  

switch分支语句

  • switch 语句和 if 语句一样,都属于选择语句(分支语句)

  •  

for循环语句

 

  • 对以上 for 循环语法结构进行说明:初始化表达式最先执行,并且在整个循环当中初始化表达式只执行一次,布尔表达式结果是 true 或者 false,true 表示循环可以继续执行,false 表 示循环结束,循环体当中的代码就是需要反复执行的代码,更新表达式一般是用来更新某个变量的值,更新操作之后可能布尔表达式的结果就不再是 true 了。

  • 使用 for 循环实现 1~100 所有数字的求和:

    public class Test(){
        public static void main(String[] args){
            int sum = 0;
            for (int i=1;i<=100;i++){
                sum+=i;
            }
            System.out.println("sum = " + sum);
        }
    }
    结果:sum = 5050

while循环语句

  • 循环语句除了 for 循环之外还有 while 和 do..while,接下来我们先来看一下 while 循环,首先学习 while 循环的语法结构。

  • 通过上图可以看出 while 循环的语法结构非常简单,它的执行顺序以及原理是这样的,先 判断布尔表达式的结果,如果是 true,则执行循环体,循环体结束之后,再次判断布尔表达式 的结果,如果是 true,再执行循环体,循环体结束之后,再判断布尔表达式的结果,直到结果 为 false 的时候,while 循环结束。如果起初第一次判断布尔表达式结果的时候就是 false,那么 while 循环体执行次数就为 0 了。

  •  

do…while循环语句

  • do..while 循环是 while 循环的变形,它们的区别在于 do..while 循环可以保证循环体执行次 数至少为 1 次,也就是说 do..while 循环的循环体执行次数是 1~N 次,而 while 循环的循环体执行次数为 0~N 次。

  • 为什么 do..while 循环可以保证至少执行一次呢,它和 while 循环的区别在哪里呢?

    • 实际上是因为在开始执行 while 循环的时候,最先执行的是条件判断,只有条件为 true 的时候才会执行循环体,既然是这样,那么条件就有可能false,这个时候就会导致循环体执行次数为 0 次。而 do..while 循环最先执行的不是条件判断,它会先执行循 环体,然后再进行条件判断,这样就可以保证循环体至少执行一次。

    •  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值