第一课:java基本概念和数据分类
java的HelloWorld
public class HelloWorld {
public static void main(String args[]){
System.out.println("Hello World");
}
}
1.主类
2.HelloWorld是类名称
3.每个.Java程序只有一个public class 文件
Java注释方法
1.//单行注释,推荐使用
2.//多行注释,不推荐,各个开发工具格式化效果不好
3./...*/文档注释,
Java标识符
(标识符由字母、数字、下划线和$,不能有Java中的关键字)
1.命名要有意义
2.“$”尽量不要用
java关键字 | ||||||
---|---|---|---|---|---|---|
abstract | boolean | break | byte | case | catch | char |
class | continue | default | do | double | else | extends |
false | final | finally | float | for | if | implements |
import | instanceof | int | interface | long | native | new |
null | package | private | protected | public | return | short |
static | synchronized | super | this | throw | throws | transient |
true | try | void | volatile | while | assert | enum |
- Java有两个未使用到的关键字:goto、const
- Java有三个特殊含义的标记:true、false、null
- jdk1.4之后增加了assert关键字
- jdk1.5之后增加了enum关键字
- jdk1.7之后,变量和类名支持中文定义
Java数据类型划分
- 基本数据类型
- 数值型:
- 整型:byte、short、int、long → 默认值:0
- 浮点型:float、double → 默认值:0.0
- 字符型:char → 默认值:'\u0000'
- 布尔型:boolean → 默认值:false
- 引用数据类型:数组、类、接口 → 默认值:null
1.基本数据类型不牵涉到内存分配问题,引用数据类型需要由开发者分配空间。
2.基本数据类型分为8种,引用数据类型分为3种。
个人选择数据类型原则:
- 如果要表示整数就使用int,表示小数使用double;
- 如果要描述日期时间数字或者表示文件(或内存)大小使用long;
- 如果实现内容传递或者是编码转换使用byte;
- 如果是想实现逻辑的空值,可以使用boolean描述;
- 如果想要中文,使用char可以避免乱码;
如果按照保存范围:byte<int<long<double
整型
任何一个数字常量(30/100)都属于int类型,即在Java情况下都是int型数据
例:public class A{
public static void main(String atgs[]){
//为变量设置内容使用如下格式;
//数据类型 变量名称=常量;
//变量只能声明一次
int num = 10; //10是常量,常量的默认类型是int;
int result = num * 2;//利用num变量的内容乘以2,并且将其赋值给result;
System.out.println(result);
}
}
- 定义完变量之后可以实现对变量的四则运算。
- 实际上变量和常量的区别只有一个:常量的内容是固定的,变量的内容是可以改变的。
每一种数据类型都有其对应数据类型的保存范围,那么下面来观察一个程序。
范例:如果超过了int的最大值或最小值的结果
public class shujulx1 {
public static void main(String args[]){
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println(max);
System.out.println(min);
System.out.println(max+1);
System.out.println(min-1);
}
}
结果:
2147483647
-2147483648
-2147483648
2147483647
此种情况就是数据溢出;
在程序世界里,数据类型的转换有一下规律:
- 数据范围小的数据与数据范围大的数据进行数学计算的时候,自动向大的范围转换
- 数据范围大的数据变为数据范围小的数据,必须使用强制转换;
- 如果是常量进行强制转换,有两种:常量标记(L、l)、使用“(数据类型)”
例:
//int变量±long常量=long型数据
System.out.println(max+1L);
System.out.println(min-(long)1);
//long变量±int常量=long型数据
System.out.println((long)min - 2);
如果将long变为int时所保存的数据超过了int的范围,那么依然会出现数据溢出
long num = 2147483650l ;//1000常量是int类型
int x = (int)num ; //把long变为int,精度可能有损失
System.out.println(x);
结果:
-2147483646
在数据类型中,byte数据是一个非常有用的数据类型,首先对于byte类型数据的取值范围:-128~127之间。
范例:观察byte转换问题
//超过byte定义范围
int num = 130;
//由int变为byte
byte x = (byte)num;
System.out.println(x);
由于byte使用的特殊性,Java对其有了一些很好的改善。
范例:观察byte
byte num = 100 ;
System.out.println(num);
虽然任何一个整数都属于int类型,Java编译的时候发现数据变量类型是byte,并且设置的内容没有超过byte的范围,会自动帮用户实现数据类型的转换;反之,如果超过了,则依然会以int型为主。
提示:
1.所有的变量在使用的时候一定不要相信默认值,都设置具体内容
2.如果在方法里面定义的默认值是不起任何作用的。
3.标准做法是在定义的时候设置默认值。
字符
字符在ASC码中的值:
char c = 'A';
int num = c;
System.out.println(num);
结果:
65
ASC码值:
‘A’(65)~‘Z’(90);
‘a’(97) ~‘z’(122);
大小写转换:
char c= 'A';
int num = c;
num = num + 32;
c = (char)num;
System.out.println(c);
String类型
1.观察string类型
//数据类型 变量 = “内容”
String str = "Hello World!";
System.out.println(str);
2.string中的“+”表示连接
int numA = 100;
double numB = 99.0;
String str = "加法计算:" + numA + numB;
System.out.println(str);
结果:
加法计算10099.0
3.string中遇到“+”时,会变为string类型,若想先计算,需使用括号改变计算的顺序
int numA = 100;
double numB = 99.0;
String str = "加法计算:" + (numA + numB);
System.out.println(str);
结果
加法计算:199.0
4.在Java中也支持多种的转义字符,例如:换行(\n)、制表符(\t)
String str = "Hello \"World\" \n\t Hello Mutou";
System.out.println(str);
结果:
Hello "World"
Hello Mutou