Java的开发环境及特点
1、JAVA特点:一次编译,到处运行。
JDK:JAVA开发工具包
JRE:JAVA运行环境
JVM:JAVA虚拟机
三者之间关系如下图:
最后运行在JVM中,编译如下图:
2、注意:
1)在一个.java文件中,只能有一个public 修饰的类
2)Class 定义类。(结构体的高配版本)后边接类名,注意类名一定要和与文件名相同。
3)一个类对应一个class文件。
4)class文件到JVM的过程叫做加载。
5)用到哪个类,加载哪个类
3、计算机中的字符本质上是一个整数。在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符。因此 一个字符占用两个字节, 表示的字符种类更多, 包括中文。
例如:
char ch = '啊';
System.out.println(ch);
此时我们在运行 javac 时加上 -encoding UTF-8 选项即可
即:javac -encoding UTF-8 Test.java
数据类型与运算符
1、数据类型
Java中的数据类型分为两大类,一类是基本数据类型,即下面8种,还有一种是引用数据类型。
1、1基本数据类型
- char占2个字节, 默认值为 ‘\u0000’,范围是0~65535,用来表示字符,无负数,除了char其余都是有符号。
- int占4字节, 默认值为0;范围:-2^31 ~ 2^31-1。
- float占4字节, 默认值为0.0f;
- byte 一个字节, 默认值为0;对i标的是c中的char字节类型 范围-128~127。
- short 2个字节, 默认值为0;范围-2^15 ~ 2^15-1。
- long长整型, 默认值为0;8个字节
- double 双精度浮点型 8字节, 默认值为0.0;
- boolean 没有明确的规定大小, 默认值为false;boolean 不可以和其他类型之间进行转换。
以上8种基本数据类型就是JAVA的8种内置类型。
1、2引用数据类型
包含类,String,数组,抽象类,接口,枚举……
2、可以使用以下代码查看 Java 中的整型数据范围:
System.out.println(Integer.MAX_VALUE); // int 的最大值
System.out.println(Integer.MIN_VALUE); // int 的最小值
Integer是int的包装类,Character是char的包装类,而long的包装类是首字母大写Long,double的包装类为Double,其余也都是首字母大写。
3、像我们平常最开始见到的一段简单的代码:
public class TestDemo {
public static void main (String[] args) {
int a = 0;
System.out.println (a);
}
}
在开头的String[ ] args表示什么呢?
大家可以尝试用for循环试着将args数组里的东西都打印出来,会发现,程序只会打印出a的值是0,是不就是说明args数组里面什么也没有呢?当然不是的。当你用cmd运行java TestDemo %%时,你就会发现它还打印出了TestDemo后面的东西,说明它里面存放的就是命令行后的参数。
开头的String[ ] args里面存放的是运行时命令行参数。
4、C语言中非零为真,0为假。而在JAVA中 Boolean:表示真和假 不存在 1 表示 true, 0 表示 false 这样的用法。
定义如下:
boolean bool = true;
boolean bool = false;
6、引用类型: String 定义字符串
String str = “dgdsdf”;
String str = “\”dgdsdf”\”;
‘\’ 转义字符,可打印出“ ”或者‘ ’
\t 制表符=Tab \转义成\
7、数+数表示相加,字符串的 + 操作,表示字符串拼接: 还可以用字符串和整数进行拼接:
String a = "hello";
String b = "world";
String c = a + b;
System.out.println(c);
//相当于C语言的strcat
8、局部变量一定要初始化,如果没有进行初始化,那么会报错,编译不会通过。
作用域:当前变量所在的{ }内
9、
1)一个变量名只能包含数字, 字母, $ ,下划线(下划线和$不可以单独作为变量的名字出现)
2)数字不能开头,只能是字母或者下划线开头.
3)变量名是大小写敏感的.即num和NUM是两个不同的变量。
4)变量命名推荐使用小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写。
10、常量
常量分为字面常量和被final修饰的变量;
c语言中 const定义常量 ;
JAVA种final定义常量;
eg:final int a = 10;
注意值不能被修改。可以在定义的时候不给初始值,但是当后面一旦给赋予新的值之后,就不能进行二次赋值了!
11、强转
各类型范围不同,注意赋值;
byte a = 10;
byte a = 20;
byte c = a + b;//error
因为CPU在运算时是以4个字节存储的,而byte是占一个字节,所以将int类型赋给byte类型,需要强转 byte c = (byte) (a+b);
隐式类型转换:把一个小类型数据给大类型
显式类型转换:把一个大类型数据给小类型
弱类型转化:支持隐形转化
大类型给小类型必须强制类型转换a = (int)b;
不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行。
注意:Char和short都是2字节,但是二者相互之间的转换必须强制类型转换。
12、算术转换:当小类型和大类型进行运算时提升为较大的类型进行运算。
小于4个字节的数据类型运算的时候会发生类型的提升。
13、
int :简单类型,也就是内置类型。
double在底层组织数据的方式和整型不一样。
小数和整数在内存当中存储时,存储方式是不一样的。小数是没有精确值的,只是有一个范围。
在代码书写时,遇到小数,使用double。
14、int转成String
int num = 1;
//方法1
String str1 = num + "";
//方法2
String str2 = String.valueOf(num);
String 转成int
String str = "100";
int num = Integer.parseInt(str);