本章一起来探讨下Java的基本语法。主要从以下几个方面展开:
学完本章内容之后,我们对Java会有更深的认识,同时也可以使用Java完成基本的操作。
被java赋予了特殊含义,用作专门用途的字符串。
例如:
Java提供了很多关键字,具体如下表:
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
凡是自己可以起名字的地方都叫标识符。
1.由26个英文字母大小写,数字:0-9,_或$组成2.数字不可以开头。3.不可以使用关键字和保留字,但能包含关键字和保留字。4.Java中严格区分大小写,长度无限制。5.标识符不能包含空格。注意:取名满足见名知意,长度不宜过长。小于30个字符;2.3java标识符的命格规则很多公司里面,对命名有严格的要求1.包名:xxxyyyzzz 所有的名称都是小写; 多个单词都是小写; 可以使用.创建多层包名2.类名和接口名XxxYyyZzz 首字母大写; 多个单词组成,首字母都是大写;3.变量和方法名xxxYyyZzz 首个单词首字母小写; 多个单词组成,除了第一个单词首字母小写,其余单词首字母大写;4.常量的名称XXX_YYY_ZZZ 常量的名称都是大写; 多个单词组成使用下划线链接;三、变量3.1概念3.2定义格式数据类型变量名=[初始值];
例如,Java编译器认为下面的语句序列是错误的:
Stringusername="猪小明";//赋值3.5常量在Java中,利用关键字final指示常量。例如:
publicstaticvoidmain(String[]args){finaldoublePI=3.14;//PI=3.10;//异常Cannotassignavaluetofinalvariable'PI'System.out.println("PI="+PI);}关键字final表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上,常量名使用全大写。
Java各整型类型有固定的数据范围和字段长度,不受操作系统OS的影响,以保证Java程序的可移植性。并且Java提供四种整型(byte,short,int,long)用于表示没有小数部分的值,并且允许它们为负数。
intnum1=100;longnum2=100L;在通常情况下,int类型最常用。但如果表示星球上的居住人数,就需要使用long类型了,因为int类型数值范围最大的是2的31次方(正好超过20亿)。这样的话如果使用int肯定会超过范围。
doubled1=10.5;floatd2=10.5F;浮点数值不适用于无法接受舍入误差的金融计算中。例如,命令System.out.printIn(2.0-1.1)将打印出0.8999999999999999,而不是人们想象的0.9。
这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。
这就好像十进制无法精确地表示分数1/3一样。如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类,例如金额
char型数据用来表示通常意义上"字符"。字符型常量的三种表现形式:
char类型是可以进行运算的。因为它都对应有Unicode值。
boolean类型适于逻辑运算,一般用于程序流程控制:
boolean类型数据只允许取值true和false,不可以0或非0的整数替代true和false,这点和C语言不同。
经常需要将一种数值类型转为另一种数值类型,但是在转换的过程中一定要注意可能会造成数据的精度丢失,例如:double类型转为int类型,那么小数点后面的数值就会丢失;Java针对现实情况分别提高两种数值转换方式:自动类型转换和强制类型转换
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(()),但可能造成精度降低或溢出,格外要注意。通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。如:
Stringa="43";inti=Integer.parseInt(a);boolean类型不可以转换为其它的数据类型。
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。
这两个类可以处理包含任意长度数字序列的数值。
使用静态的valueOf方法可以将普通的数值转换为大数值:
BigIntegerbigInteger=BigInteger.valueOf(10);BigDecimalbigDecimal=BigDecimal.valueOf(2.0);遗憾的是,不能使用人们熟悉的算术运算符(如:+和*)处理大数值。而需要使用大数值类中的add和multiply方法。
BigIntcger类实现了任意精度的整数运算。常用方法如下:
publicstaticvoidmain(String[]args){//int转为BigIntegerBigIntegernum1=java.math.BigInteger.valueOf(100);BigIntegernum2=java.math.BigInteger.valueOf(12);//相加BigIntegeradd=num1.add(num2);System.out.println("相加:"+add);//相减BigIntegersubtract=num1.subtract(num2);System.out.println("相减:"+subtract);//相乘BigIntegermultiply=num1.multiply(num2);System.out.println("相乘:"+multiply);//相除取整BigIntegerdivide=num1.divide(num2);System.out.println("相除:"+divide);//取摸|取余数BigIntegerremainder=num1.remainder(num2);System.out.println("取余:"+remainder);}最终结果:
相加:112相减:88相乘:1200相除:8取余:44.6.1BigDecimalBigDecimal实现了任意精度的浮点数运算。常用方法如下:
publicstaticvoidmain(String[]args){//int转为BigIntegerBigDecimalnum1=BigDecimal.valueOf(100.5);BigDecimalnum2=BigDecimal.valueOf(12.3);//相加BigDecimaladd=num1.add(num2);System.out.println("相加:"+add);//相减BigDecimalsubtract=num1.subtract(num2);System.out.println("相减:"+subtract);//相乘BigDecimalmultiply=num1.multiply(num2);System.out.println("相乘:"+multiply);//相除保留两位小数,最后一位四舍五入。当然也可以使用其他模式BigDecimaldivide=num1.divide(num2,2,RoundingMode.UP);System.out.println("相除两位小数/四舍五入:"+divide);//取摸|取余数BigDecimalremainder=num1.remainder(num2);System.out.println("取余:"+remainder);}最终结果:
相加:112.8相减:88.2相乘:1236.15相除两位小数/四舍五入:8.18取余:2.1五、Java运算符Java提供了多种运算符来满足正常的需求,我们可以将运算符分为以下几类:
三元运算符,主要是根据条件表达式的不同,选择不能的结果
就类型if...else分支语句一样,可以到达二选一结果。
例如:成绩大于等于60分表示及格,否则就是不及格
//语法(条件表达式)表达式1:表达式2-如果条件表达式为true,运算后的结果是表达式1;-如果条件表达式为false,运算后的结果是表达式2;