Java学习日记(一)关键字、标识符、注释、常量与变量、运算符、转义字符

来源:互联网 发布:安卓福利软件 编辑:程序博客网 时间:2024/05/18 19:43

一、关键字:

关键字的定义和特点:

定义:被Java语言赋予了特殊含义的单词

特点:关键字中所有字母都为小写

        ①用于定义数据类型的关键字:

              引用数据类型:class interface

              整数类型:byte short int long

              浮点型:float double

              字符型:char

              布尔型:boolean

              void用于定义函数,表示返回类型

       ②用于定义数据类型值的关键字:

              true flase null

       ③用于定义流程控制的关键字:

              判断:if else switch case default

              循环:while do for

              继续循环:continue

              结束循环或者选择结构:break

              返回:return

       ④用于定义访问权限修饰符的关键字:

              privateprotected public

       ⑤用于定义类,函数,变量修饰符的关键字:

              abstract finalstatic synchronized enum

       ⑥用于定义类与类之间关系的关键字:

              extends implements

       ⑦用于定义建立实例及引用实例,判断实例的关键字:

              new this superinstanceof(判断对象类型)

       ⑧用于异常类处理的关键字:

              trycatch finally throw throws

       ⑨用于包的关键字:

              package import

       ⑩其他修饰符关键字

              native strictfptransient volatile assert

附注:main不是关键字,却是被虚拟机所识别的一个名称。

 

二、标识符:

       在程序中自定义的一些名称

       由26个英文字母大小写(a-z、A-Z)、数字(0-9)、符号(_、$)组成

定义合法标识符规则:

       1.      数字不可以开头;

       2.      不可以使用关键字。

附注:Java中严格区分大小写。在起名字的时候,为了提高阅读性,要尽量有意义。

 

Java中的名称规范:

       包名:多单词组成的所有字母都小写(例如:com.itheima包名之间用“.”连接)

       类名接口名:多个单词组成时,所有单词的首字母大写(例如:StudentInfo)

       变量名和函数名:多个单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写(例如:getStudentName)

       常量名:所有字母都大写。多个单词时每个单词用下划线连接(例如:Max_Num)

 

三、注释:

       用于注解说明解释程序的文字就是注释。

       目的:提高代码的阅读性。

格式:

       ①单行注释:(// 注释文字)

       ②多行注释(/* 注释文字 */)

       ③文档注释(/** 注释文字 */)

对于单行和多行注释,被注释的文字,不会被JVM解释执行。

对于文档注释,是Java特有的注释,其中注释内容可以被JDK提供的javadoc工具所解析,生成一套以网页文件形式体现的该程序的说明文档。

 

注释是一个程序员必须要具备的良好编程习惯。

初学者编写程序可以养成习惯:先写注释再写代码(将自己的思路通过注释先整理出来,再用代码去体现)

 

/**这是我的第一个程序@auther Wangpeng*/class FirstProgram{       /*       这是主函数,是程序的入口       它的出现可以保证程序的独立运行*/public staticvoid main(String[] args){       //这是输出语句,用于将括号内的数据打印到控制台       System.out.println(“Hello World!”);       }}

 

四、常量与变量:

       常量:不能改变的数值

       Java中常量的分类:

           ①整数常量:所有整数

           ②小数常量:所有小数

           ③布尔型常量:较为特有,只有两个数值(true、false)

           ④字符常量:将一个数字字母或者符号用单引号(’’)标识

           ⑤字符串常量:将一个或多个字母用双引号(””)标识

           ⑥null常量:只有一个数值就是null

       对于整数:java有三种表现形式:

               ·十进制:0-9,满10进1;

               ·八进制:0-7,满8进1,用0开头表示;

               ·十六进制:0-9,A-F,满16进1,用0x开头表示。

       进制的基本转换:

       十进制转换为二进制:除2取余(从下往上写)

       示例如下:

              

       二进制转换成十进制:按权展开

              示例:将二进制1010转换成十进制数

              从第一位到末尾的顺序,每个的权值相加:1*2^3+0*2^2+1*2^1+0*2^1=8+2=10。

 

       十进制与八进制和十六进制的互转,跟转换二进制的方法一样。

       方法:可以先将十进制转换为二进制,再转换为八进制和十六进制。这就利用了一个八 进制位相当于三个二进制位,而一个十六进制位相当于四个二进制位。如:

              

附注:负数的二进制——只需要将对应的正数取反加1OK了(负数的最高位是1)。

Java API文档中的Integer、Long等类中都提供了转成二进制、八进制、十六进制的静态方法toBinaryString(type i)、toOctalString(typei)、toHexString(type i)(其中type代表类的具体类型)

 

变量:内存中的一个存储空间(有自己的名称和类型)

           作用:用来不断的存放同一类型的数据,并可以重复使用

           定义格式:数据类型 变量名=初始化值;

           数据类型:①基本数据类型

                               ②引用数据类型

        如下图所示:

              

       ●类型的自动提升:

       在运算中,当低类型数据与高类型数据进行计算时,系统会自动将表达式中的低类型数据提升到高类型。

       示例:

                     byte b=4;

                     int c;

                     c=b+2;//b会自动提升为int类型进行运算

自动类型转换图如下所示:


       ●强制类型转换:

       当程序中,数据类型需要变换时,可以进行强制转换。

       示例:

                     byte b=4;

                     b=b+4;//就会报错

                     b=(byte)(b+4);//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。

 

五、运算符

           1、算术运算符

               +:加法运算符

               示例:

                     int a=3;

                     int b=4;

                     int sum=a+b;//结果为7

                     附注:除此以外,+还具有连接字符串的作用

              -:减法运算符

               示例:

                     int a=99;

                     int b=43;

                     int res=a-b; //结果为56

                     附注:除此以外,-还具有求负运算的作用

              示例:

                     double x= -5.0;

                     x= -x;//将x求负,所以结果为:5.0

              *:乘法运算符

               示例:

                          double a=5.2;

                          double b=3.1;

                           double multiply=a*b;//结果为16.12

               /:除法运算符

               如果除法运算的两个操作数都是整数类型的话,那么结果也是整数;

               示例:

                     int a=19;

                     int b=4;

                     in tdiv=a/b;//结果为4

              如果除法运算中的两个操作数有一个或者两个都是浮点数的话,那么结果也将是浮点数;

               示例:

                     double a=6.2;

                     double b=3.1;

                     double div=a/b;//结果为2.0

              或者

                     double a=6.3;

                     int b=3;

                     double div=a/b;//结果为2.1

               %:取余运算符

               示例:

                     int a=5;

                     int b=3;

                     int div=a%b;//结果为2

                     附注:进行取模运算时,如果有负数,运算结果取决于运算左边有没有负数。

               ++:自增运算符

               自增运算符只能操作单个数值型(整型、浮点型)的变量,不能操作常量或者表达式。该运算符既可以放在操作数的左边,也可以放在操作数的右边,但是出现在左边和右边的结果是不一样的,如果把++放在左边,则先把操作数+1,然后再运算;如果++放在右边,则先运算,然后再+1。

               示例:

                          int a=5;

                          int b=a++ +6;//结果为11

               或者

                          int a=5;

                          int b=++a +6;//结果为12

               --:自减运算符

               与++基本类似

               示例:

                   int a=14;

                    int b= a- - +3;//结果为17;

               或者

                     int a=14;

                     int b= - -a +3;//结果为16

           2、赋值运算符

               符号:=  +=  -= *= /=  %=等等

               示例:

                   ▲int a,b,c;a=b=c=3;

                   ▲int a=3;a+=5;

                   ▲int d=9;d/=3;

           3、比较运算符

               ◆>:大于——只支持两边操作数是数值类型。如果前面变量的值大于后面变量的值,返回true

               ◆>=:大于等于——只支持两边操作数是数值类型。如果前面变量的值大于等于后面变量的值,返回true

               ◆<:小于——只支持两边操作数是数值类型。如果前面变量的值小于后面变量的值,返回true

               ◆<=:小于等于——只支持两边操作数是数值类型。如果前面变量的值小于等于后面变量的值,返回true

               ◆==:等于——如果进行比较的两个操作数都是数值类型,即使它们的数据类型不同,只有它的值相等,就会返回true。例如97==’a’返回true,5.0==5也返回true。如果两个操作时都是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,而且这两个引用必须指向同一个对象才会返回true。Java也支持两个boolean类型的值进行比较,例如,true==false将返回false。

               ◆!= :不等于——如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,就返回false。如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用变量指向的不是同一个对象就会防护false。

    附注:比较运算符的结果都是boolean型,也就是要么是true,要么是false

           4、逻辑运算符

               ◆&&:简洁与,两个操作数都是true返回true,否则返回false。当第一个操作数是false直接返回false

               ◆&:与,两个操作数都是true返回true,否则返回false。

               ◆||:简洁或,只要有一个操作数是true返回true,否则返回false。当第一个操作数是true直接返回true

               ◆|:或,只要有一个操作数是true返回true,否则返回false。

               ◆!:非,只要有一个操作数,如果为true,则返回false;如果为false,则返回true。

               ◆^:异或,当两个操作数不同时才返回true,如果两个操作数相同则返回false。

           5、位运算符

               ◆<<:左移,空位补0,被移除的高位丢弃。

              ◆>>:右移,被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。

              ◆>>>:无符号右移,被移位二进制最高位无论是0或者是1,空缺位都补0。

              ◆&:与,二进制位进行&运算,只有1&1时结果是1,否则是0。

              ◆|:或,二进制位进行 |运算,只有0 | 0时结果是0,否则是1。

              ◆^:异或,任何相同二进制位进行^运算,结果是0;1^1=0 , 0^0=0。不相同二进制位 ^运算结果是1。1^0=1 , 0^1=1。

              ◆~:反码,对二进制进行取反。

           6、三元运算符

       格式: (条件表达式)?表达式1:表达式2;

            a)如果条件为true,运算后的结果是表达式1;

            b)如果条件为false,运算后的结果是表达式2;

        示例:

                     int a=3;

                     int b=8;

                     int z=(a>b)?a:b;//结果为:8

 

六、转义字符

         通过“\”来转变后面字母或符号的含义

              常用的转义字符有:

              \b:退格 

              \n:换行

              \t:制表符,相当于tab键

              \r:回车

              \\:表示反斜杠

              \':表示单引号

              \":表示双引号

 

练习:

       1.最有效的方式算出2乘以8等于几?——2<<3

       2.对两个整数变量的值进行互换的方法?

public classSwapTwoNum {        public static void main(String[] args) {              swap_1(2, 3);              swap_2(4, 6);              swap_3(5, 8);       }        // 方式一:使用第三方变量       public static void swap_1(int a, int b) {              sopln("第一种交换方法:");              sopln("第一种交换前:" + "a=" + a +",b=" + b);              int temp;              temp = a;              a = b;              b = temp;              sopln("第一种交换后:" + "a=" + a +",b=" + b + '\n');       }        // 方式二:不使用第三方变量(一)(有局限性:当a和b的值非常大时,会超出指定类型的范围)       public static void swap_2(int a, int b) {              sopln("第二种交换方法:");              sopln("第二种交换前:" + "a=" + a +",b=" + b);              a = a + b;              b = a - b;              a = a - b;              sopln("第二种交换后:" + "a=" + a +",b=" + b + '\n');       }        // 方式三:不实用第三方变量(二)       public static void swap_3(int a, int b) {              sopln("第三种交换方法:");              sopln("第三种交换前:" + "a=" + a +",b=" + b);              a = a ^ b;              b = a ^ b;              a = a ^ b;              sopln("第三种交换后:" + "a=" + a +",b=" + b);       }        // 带换行的输出       public static void sopln(Object obj) {              System.out.println(obj);       }}

结果为:


       3.位运算将十进制数60转成十六进制数?

       思路:依次取出低四位即可。

public classJinzhiTrans {        public static void main(String[] args) {              int num = 60;               // 获取60的最低4位,通过&15              int n1 = num & 15;               System.out.println(n1 > 9 ?(char) (n1 - 10 + 'A') : n1);               // 获取下一组四位,将60右移4位              int temp = 60 >> 4;               // 对temp的值进行最低四位的获取。              int n2 = temp & 15;              System.out.println(n2 > 9 ?(char) (n2 - 10 + 'A') : n2);       }}


0 0
原创粉丝点击