java编程入门6 java语言基础与流程控制
语言基础
类型变量有两大类:基本数据类型和引用数据类型;
引用数据类型是除基本数据类型以外的数据类型,包括数组,String,引用对象等。
基本数据类型
1.整数类型
1)不能以0作为十进制数的开头(0除外)
2)八进制必须以0开头
3)十六进制必须以0X或0x开头
4)整型数据类型根据它所占内存大小的不同,可分为byte、short、int和long4中类型
数据类型 | 内存空间(8位比特位等于1字节) | 取值范围 |
byte | 8位 | -2^7~2^7-1 |
short | 16位 | -2^15~2^15-1 |
int | 32位 | -2^31~2^31-1 |
long | 64位 | -2^63~2^63-1 |
5)若赋给的值大于int型的最大值或小于int型的最小值,则需要在数字后加L或l,表示该数值为长整型。
2.浮点类型
1)浮点型数据类型
数据类型 | 内存空间 | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348623157E308 |
2)在默认情况下,小数都被看作double型,若使用float型小数,则需要在小数后面添加F或f。
3.转义字符
转义字符 | 含义 |
\ddd | 1~3位八进制数据所代表的字符 |
\uxxxx | 4位十六进制数据所表示的字符 |
\r | 回车 |
4.布尔类型
1)通过关键字boolean来定义布尔类型变量,只有true和false两个值。
变量与常量
1.关键字
1)strictfp
strict float point (精确浮点)
使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。
2)transient
变量修饰符。标记为transient的变量,在对象存储时,这些变量状态不会被持久化。当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。
3)synchronized
可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
4)instanceof
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法: boolean result = object instanceof class
5)volatile
volatile是一个类型修饰符。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。
volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。
移位操作
1.原码、反码、补码
1)在计算机中数据的运算是先将数据转换为补码,然后进行计算,最后将补码转换为原码。
关于原码、反码、补码的介绍:https://www.cnblogs.com/ccsuCBG/p/9678387.html
2.左移
1)将运算符左边的操作数的二进制数据按照运算符右边操作数指定的位数向左移,右边移空的部分补0
3.右移
1)将运算符左边的操作数的二进制数据按照运算符右边操作数指定的位数向右移。
2)如果最高为是0,右移空的位就填入0;如果最高位是1,右移空的位就填入1。
4.无符号右移
1)java提供了无符号右移”>>>”,无论最高位是0还是1,左侧被移空的高位都填入0。
5.移位运算符适用的数据类型有byte、short、char、int、long。
数据类型转换
1.数据类型转换有两种方式,即隐式转换与显示转换。
2.隐式类型转换
1)从低级类型向高级类型的转换,系统将自动执行。
2)类型按精度从低到高排序的顺序为 byte<long<int<long<float<double
3.显示类型转换
当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)
代码注释
1.单行注释://
2.多行注释:/* */
3.文档注释:/** */
1)当文档注释出现在声明之前时,会被javadoc文档工具读取作为javadoc文档内容
流程控制
1.switch语句中表达式的值必须是整型、字符型或字符串类型,
2.foreach
1.foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本
2.语法如下:
for(元素变量 x:遍历对象 obj){ 引用了x的java语句 }
for example:
//遍历一维数组 public class Text { public static void main(String[] args) { int array[]= {7,10,1}; for(int x:array) { System.out.println(x); } } }
3.goto
1.在java中goto关键字本身没有任何意义,但是保留了C中goto的功能,并且只能用于嵌套循环时跳出外层循环
2.java提供的”标签”的语法如下(与break和continue一起使用):
标签名:循环体{ break 标签名; } 标签名:循环体{ continue 标签名; }
for example:
public class Text { public static void main(String[] args) { Label:for(int i=1;i<=10;i++){ for(int j=1;j<=5;j++) { if(i>1) continue/*break*/ Label; System.out.println("i:"+i+" "+"j:"+j); } } } }
2018-11-28