> 文档中心 > Java基础语法(二)

Java基础语法(二)

文章目录

    • 一、标识符
    • 二、数据类型
    • 三、类型转换
    • 四、变量
    • 五、变量作用域
    • 六、变量的命名规范
    • 七、常量
    • 八、运算符
    • 九、算数运算符
    • 十、逻辑运算符
    • 十一、位移运算符
    • 十二、三元运算符

一、标识符

标识符注意点:

  1. 所有的标识符都应该以字母,美元符,或下划线开始
  2. 不能使用关键字作为变量名或方法名
  3. 标识符是大小写敏感的
  4. 可以使用中文命名,但是一般不建议这样使用,也不建议使用拼音,很low.

二、数据类型

(四类八种)强类型语言弱类型语言
public class ShuJuLeiXing{    public static void main(String[] args){//8种数据类型 //整型 byte num2 = 12;// short num3 = 12;//短整型 int num1 = 12;//整形 long num4 = 314159263846L;//长整型类型要在后面加L,以便知道是长整型 //小数型 float num5 = 5.55F;//浮点数小数要在后面加F,以便知道是浮点数 double num6 = 5.777777; //Boolean型 boolean one = true; boolean two = false; System.out.println(num2); System.out.println(num3); System.out.println(num1); System.out.println(num4); System.out.println(num5); System.out.println(num6); System.out.println(one); System.out.println(two);    } }

运行结果
12
12
12
314159263846
5.55
5.777777
true
false
Process finished with exit code 0

数据类型扩展

public class FuDianShuTuoZhan {    public static void main(String[] args) { //进制 int a = 0b10;//二进制 int x = 10;//十进制 int y = 010;//八进制O int z = 0x10;//十六进制0x System.out.println(a+"-------"+x+"-------"+y+"-------"+z); //浮点数拓展  银行业务怎么表示?钱 //BigDecimal //float 有限 离散  舍入误差  大约   接近但不等于 //double 最好完全使用浮点数进行比较 float b = 0.1f; double c = 1/10; System.out.println(b == c);//false float bb = 211313123f; float cc = bb+1;//接近但 不等于 System.out.println(bb == cc);//true//字符拓展 char num1 = 'a'; char num2 = '中'; System.out.println(num1); System.out.println((int)num1);//强制转换 System.out.println(num2); System.out.println((int)num2);//强制转换 //所有的字符本质还是数字  (97=a   65 =A) //转义字符  \n 换行    \t 制表符 System.out.println("Hello\tWorld"); System.out.println("Hello\nWorld"); //对象 可以从内存的角度思考明知下列出现的结果 String sa = new String("Hello World"); String sb = new String("Hello World"); System.out.println(sa == sb);//false String sc = "Hello World"; String sd = "Hello World"; System.out.println(sc == sd);//true    }}

运行结果如下:
2-------10-------8-------16

false
true
a
97

20013
Hello World
Hello
World

false
true
Process finished with exit code 0

三、类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

低 ------------------------------------->高
byte,short,char——>int——>long——>float——double

运算中,不同类型的数据先转换为同一类型,然后进行运算。

强制类型转换
自动类型转换

public class LeiXingZhuanHuan {    public static void main(String[] args) { int a = 128; byte b = (byte) a; //内存溢出 //强制类型转换  (类型)变量名   高——>低 //自动类型转换    低——>高 System.out.println(a); System.out.println(b); /* * 注意点: *  1.不能对布尔值进行转换 *  2.不能把对象类型转换为不相干的类型 *  3.在把高容量转换到低容量的时候,强制转换 *  4.转换的时候可能存在内存溢出,或者精度问题! * */ System.out.println((int)23.7); //23 System.out.println((int)-45.89f); //-45 //操作比较大的数的时候,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; System.out.println(money); int years = 20; int total = money*years;//-1474836480,计算的时候溢出了 long total2 = money*years;//默认是int,转换之前已经存在问题了? long total3 = ((long)money*years);//先把一个数转换为long System.out.println((long)total2);    }}

运行结果如下:
128
-128
23
-45
1000000000
-1474836480
Process finished with exit code 0

四、变量

  1. 变量是什么:就是可以变化的量!
  2. Java是一种强类型语言,每个变量都必须声明其类型。
  3. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value][{,varName[=value]}];//数据类型  变量名  = 值;可以使用逗号隔开来声明多个同类型变量。

注意事项:
每个变量名都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

public class BianLiang {    public static void main(String[] args) { int x = 400; int y = 34; System.out.println(x+"---"+y);    }}

运行结果如下:
400—34
Process finished with exit code 0

五、变量作用域

类变量实例变量局部变量
public class BianLiangZuoYongYu {    static  double salary = 100;//类变量    public static void main(String[] args) {  int salarys = 12; System.out.println(salarys);//局部变量 System.out.println(salary);    }}

运行结果如下:

12
100.0
Process finished with exit code 0

六、变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写如:lastName
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man,GoodMan
  6. 方法名:首字母小写和驼峰原则:(),runRun()

七、常量

常量:初始化后不能再改变值!不会变动的值。所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。final 常量名 = 值;final double pI = 3.14;

常量名一般使用大写字符。

public class ChangLiang {    static final double PI = 3.1415926;//static 为修饰词放在final前后运行结果都一样    public static void main(String[] args) { final double a = 12.1254; System.out.println(a);    }}

运行结果:

12.1254
Process finished with exit code 0

八、运算符

1、运算符:用于运算和操作数据的符号2、分类:算数运算符 + - * %,++,--赋值运算符 =, += ,-=比较运算符:>,=,>,<>>(了解!!!)三元运算符:   ?:

九、算数运算符

1、运用做算数运算的符号2、+   -   *    /    %3、+ :加法运算符:(1)表示正数(2)表示算数的加法(3)表示字符串的拼接4、/:除法运算符: (1)如果是两个整数相除,结果还是一个整数(2)如果任意一个操作数是小数,那么结果就是小数5、%:取模运算符、取余运算符:获取两数相除的余数 (1)注意事项:取余的结果的符号只和%前面的操作数的符号有关(2)作用:获取余数;判断是否整除;判断奇偶
class Demo_14_ZiZengZiJian {public static void main(String[] args) {//自增运算符int i = 100;//i++;System.out.println(i);//++ 或者--在变量后面先取值,再做加操作System.out.println(i++);System.out.println(i);int j = 200;//++ 或者 -- 在变量的前面,先运算再取值System.out.println(++j);}}

运行结果:
100
100
101
201
Process finished with exit code 0

十、逻辑运算符

1、用于处理逻辑值的运算符,就是逻辑运算符
2、处理的数据:逻辑值;处理的结果:逻辑值
3、分类:
普通的逻辑运算符:& | ^ !
短路的逻辑运算符:&& ||
4、&:逻辑与。全真为真,否则为假
true & true true
true & false false
false& true false
false& false false

5、|:逻辑或。全假为假,否则为真
true | true true
true | false true
false| true true
false| false false

6、^:逻辑异或。相同为假,不同为真
true ^ true false
true ^ false true
false^ true true
false^ false false

7、!:逻辑非。遇真为假、遇假为真【常用】
!true false
!false true

8、短路逻辑运算符【常用】:逻辑运算符前后的两个表达式中,第一个表达式计算完成之后,一定可以确定整个逻辑表达式的值,那么就不再计算第二个表达式的值。
&&:逻辑短路与,如果第一个表达式计算结果为false,那么第二个表达式的值就不计算了,直接给出false的结果
||:逻辑短路或,如果第一个表达式计算结果为true,那么第二个表达式的值就不需要计算了,直接给出true的结果
总结:短路运算符和非短路运算符的运算规则相同,只不过是效率更高

public class LuoJiYunSuan {    public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println(a && b); //逻辑与运算,当两个都为真才为真,反之为假 System.out.println(a || b);//逻辑或运算,其中有一个为真,则为真,反之为假 System.out.println(!(a && b)); System.out.println("------------------------------------"); //基本的逻辑运算符 System.out.println(true & true); System.out.println(false & true); System.out.println(false | true); System.out.println(false ^ true); System.out.println(!true); //短路逻辑运算符 int k = 10; int c=4; boolean d = (k>100) && (c++<12); //boolean b = (k>100) & (a++<12); System.out.println(d + "  " + c); int m = 10; int n = 4; boolean bo = (m > 9 ) || (n++ < 12); //boolean bo = (m > 9 ) | (n++ < 12); System.out.println(bo + " " + n);     /*    A = 0011 1100    B = 0000 1101     A & B  = 0000 1100  //逻辑与。全真为真,否则为假     A | B  =  0011 1101 //逻辑或。全假为假,否则为真     A ^ B =   0011 0001//逻辑异或 相同为假,不同为真     ~B =   1111 0010      //取反,相同为0,不同为1     */    }}

运行结果:
false
true
true
------------------------------------
true
false
true
true
false
false 4
true 4

Process finished with exit code 0

十一、位移运算符

1、对于数据在内存中的表示,进行按照位来移动,以此达到对数据进行运算的目的。
2、说明:只能操作整数类型的数据,运算结果还是整数
3、罗列:<>
4、<<:左移运算符,每次移动一位,会将原来的数字扩大2倍
5、>>:右移运算符,每次移动一位,会将原来的数字缩小为原来的二分之一
6、总结特点:
运算比直接乘以2或者除以2的效率要高很多

public class WeiYi {    public static void main(String[] args) { //位移运算符 System.out.println(24 << 2);   //左移运算符,每次移动一位,会将原来的数字扩大2倍 System.out.println(24 >> 2);   //右移运算符,每次移动一位,会将原来的数字缩小为原来的二分之一    }}

运行结果:
96
6
Process finished with exit code 0

十二、三元运算符

1、元:可以操作的数据或者表达式
2、三元运算符:同时可以操作三个数据或者表达式的运算符
3、格式:
表达式1 ? 表达式2 : 表达式3
4、说明:
1、表达式1必须是boolean(布尔)类型的表达式,计算的结果只能是true、或者false
2、表达式2和表达式3可以是任意类型的表达式
5、运算流程:
1、计算表达式1的值,要么为true、要么为false
2、如果表达式1计算结果为true,就选择表达式2作为三元表达式的计算结果
3、如果表达式1计算结果为false,就选择表达式3作为三元表达式的计算结果

public class SanYuanYunSuanFu {    public static void main(String[] args) { //三元表达式 int i = 10; int j = 20; int f = 20; int k =  (i >= j ? (i+f) : (j+f)  ); System.out.println(k); System.out.println(""+i+j);   //字符串拼接会转换为字符串形式 System.out.println(i+j+"");    }}

运行结果为:
40
1020
30
Process finished with exit code 0