Java 的基本程序设计结构
这节主要学习:
1.第一个java程序
2.注释
3.数据类型
4.变量
5.运算符
6.字符串
7.输入输出
8.控制流程
9.大数值
10.数组
1.第一个Java程序
编写java代码程序需要注意大小写.
public class FirstSample{
public static void main(String []args){
System.out.println("hello,java");
}
}
分析上面代码
1.关键字public 是访问权限修饰符,用于控制程序的访问级别。
2.关键字class表明 Java 程序中的全部内容都包含在类中。
3.FirstSample是类名,可以自定义,但是不可以用Java的保留字(如public class等等。。),名字必须以字母开头,后面可以跟字母和数字的任意组合。长度基本上没有限制。
4.源代码的文件名必须与公共类的名字相同,并用 .java 作为扩展名。
5.代码必须放在{}中
6.每个 Java 应用程序都必须有一个 main 方法
2.注释
java注解和其他语言一样,在执行程序中不会被执行,方便程序员更好的管理代码块。
2.1 java的三大注释方法
第一种 ://
第二种:/* 和 */
第三种:/**开始, 以 */
Java的注释不能嵌套!!!
3.数据类型
java是一种强类型语言,每一个变量都必须声明类型。
在java中一共有8种基本类型
整型4种:int shor long byte
浮点型2种:flout double
char类型
booleam类型
3.1整型
整型用于表示没有小数的数值,它可以是负数。
类型 | 存储需求
类型 | 存储需求 | 取值范围 |
---|---|---|
int | 4字节 | -2 147 483 648 - 2 147 483 647 (正好超过 20 亿) |
long | 8字节 | -9 223 372 036 854 775 808 - 9 223 372 036 854 775 807 |
short | 2字节 | -32768 - 32767 |
byte | 1字节 | -128~127 |
通常情况下用int,如果数值过大则long,而short和byte用于特定的应用场景。(例如,底层的文件处理或者需要控制占用存储空间量的大数组。)
3.2浮点型
浮点类型用于表示有小数部分的数值。
类型 | 存储需求 | 取值范围 |
---|---|---|
float | 4字节 | 大约 ± 3.402 823 47E+38F (有效位数为 6 ~ 7 位) |
double | 8字节 | 大约 ± 1.797 693 134 862 315 70E+308 (有效位数为 15 位 |
绝大部分情况下都使用double类型。
float 类型的数值有一个后缀 F 或 f (例如,3.14F。) 没有后缀 F 的浮点数值(如 3.14 ) 默认为 double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D)。
浮点数值计算都遵循 IEEE 754 规范。
浮点型溢出和出错的情况:
1.正无穷大
2.负无穷大
3.NaN(不是一个数字)
例如, 一 正整数除以 0 的结果为正无穷大。计算 0/0 或者负数的平方根结果为 NaN。
浮点数值不适合用于金融计算种,因为浮点数值是采用二进制系统表示,而二进制无法精确的表示计算的结果(它会采用舍入误差的方式)例如:( 2.0-1.1 ) 将打印出 0.8999999999999999
char类型
现在的char类型不单单表示一个字符,一些Unicode字符可以用一个char值表示,而另外一些则需要两个char值。
Unicode 和 char 类型
1.Unicode 是java 中使用的编码表(类似C语言使用ASCII码)。UTF-16是一种编码方式
2.码点:编码表中一个字符对应的编码值(数值)。如:\b(退格字符)对应的Unicode值----\u0008 (采用十六制书写并加上前缀U)
3.代码单元 :每个字母用十六位表示。对码点编码得到一个或者两个16位序列
4.char 是一个采用(每个字母用十六位表示。对码点编码得到一个或者两个16位序列)方法表示的的代码单元
boolean 类型
boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件 整型值和布尔值之间不能进行相互转换。
变量
java声明变量时,变量的类型位于变量名之前。如:double xxx; int xxx;
在Java中“字母”和“数字”的范围更大,字母包括 ‘A’ ~ ’Z’, ’a’ ~ ’z‘,’_‘,’$‘,或在某种语言中表示字母的任何 Unicode 字符。
如果想要知道哪些 Unicode 字符属于 Java 中的“ 字母”, 可以使用 Character 类的isJavaldentifierStart 和 isJavaldentifierPart 方法来检查。
另外, 不能使用 Java 保留字作为变量名
变量初始化
声明一个变量之后,必须用赋值语句对变量进行显式初始化, 千万不要使用未初始化的变量。
//第一种使用方式,在声明的同时初始化变量
double salary=200;
System.out.println(salary);
//第二种方式,声明了变量,然后在赋值
double salary2;
salary=300;
System.out.println(salary);
常量
在 Java 中, 利用关键字 final 指示常量。在习惯上要养成常量名全大写。
//使用了final之后,只能赋值一次,一旦赋值以后不能更改。在习惯上要养成常量名全大写。
public class Constans{
public static void main(String []args){
final double CM_PER_INCH=2.54;
Systrm.out.println(CM_PER_INCH);
}
}
在java中,经常希望某个常量可以在一个类中的多个方法使用,通常把这种类称为类常量。使用 static final设置为常量类。
public class Constans2{
//类常量定义在方法之外(包括main方法).
public final double CM_PER_INCH=2.54;
public final double AAA=333;
public static void main(String []args){
Systrm.out.println(CM_PER_INCH+AAA);
}
}
如上在类常量前面加public,那么其他的类也可以使用这个常量。使用方法:类名.类常量名(如:Constans2.CM_PER_INCH)。
运算符
Java 中,使用算术运算符 +、-、 *、/ 表示加、减、 乘、除运算。整数的求余操作用 % 表示。
整数被 0 除将会产生一个异常, 而浮点数被 0 除将会得到无穷大或 NaN 结果。
使用 strictfp 关键字标记的方法必须使用严格的浮点计算
数学函数与常量
Math类中,包含了各种各样的数学函数。
1.计算个数值的平方根使用:sqrt方法:Math.sqrt(x)
2.幂运算使用pow方法:Math.pow(x,a);
3.floorMod 方法的目的是解决一个长期存在的有关整数余数的问题。
4常用的三角函数:Math.sin | Math.cos | Math.tan | Math.atan | Math.atan2
5.有指数函数以及它的反函数—自然对数以及以 10 为底的对数:Math.exp |
Math.log | Math.loglO
6.表示 TC 和 e 常量的近似值:Math.PI | Math.E
数值类型之间的转换
强制类型转换
强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。
double x=9.997;
int nx=(int)x;
//结果:9
如果想对浮点数进行舍人运算,使用Math.round方法
double x=9.997;
int nx=(int)Math.round(x);
//结果:10
结合赋值和运算符
使用二元运算符:
x +=4;等价于 x=x+4;
(一般地, 要把运算符放在 = 号左边,如 *= 或 %=)
自增与自减运算符
前缀形式会先完成加 1; 而后缀形式会使用变量原来的值。
i++
++i
i–
–i
关系和 boolean 运算符
Java包括丰富的关系运算符。要检测相等性,可以使用两个等号==。(3==7的值返回为false)另外,3!=7,返回值为true。最后,还有经常使用的<(小于)、>(大于)、<=(小于等于)、>=(大于等于)运算符。
在Java中,使用&&表示逻辑“与”运算符,使用||表示逻辑“或”运算符。而且Java支持三元操作符?:。如果条件为true,表达式为:条件?操作1:操作2,则执行操作1。
位运算符
处理整型类型时,可以直接对组成整型数各个位完成操作。这意味这可以使用掩码技术得到各个位。位运算符如下:
&(“and”) |(“or”) ^(“xor”) ~(“not”)
还有>> 和 << 运算符将位模式左移或右移
·>>>运算符会用 0 填充高位,这与>>不同,它会用符号位填充高位。不存在运算符
运算符的优先级
枚举类型
变量的取值只在一个有限的集合内。
针对这种情况, 可以自定义枚举类型。枚举类型包括有限个命名的值。
//自定义枚举类型
enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};
//使用自定义枚举
Size ss=Size.SMALL;
Size 类型的变量只能存储这个类型声明中给定的某个枚举值,或者 null 值,null 表示这个变量没有设置任何值。