Java
-
不同的操作系统的指令是不同的;
-
c语言的编译运行过程:
.c源文件,经过编译,直接生成可执行文件(0和1) -
java语言的编译运行过程
1).java源文件,经过编译,生成 .class字节码文件
2)JVM加载 .class并运行 .class(0和1) -
开源:
开放源代码、免费的
java开发环境
-
java编译运行过程
1) 编译期:.java源文件,经过编译,生成.class字节码
2) 运行期:JVM加载 .class并运行 .class(0和1)
特点:跨平台、一次编程到处使用
JVM是一个软件,安装在操作系统中,为字节码文件提供运行环境 -
名词解释
1)JVM:Java Virtual Machines (java虚拟机)
加载.class并运行.class
2)JRE:Java Runtime Environment (java运行环境)------运行java文件最小机构
除了包含JVM以外,还包含了运行java程序所必须的环境。
JRE = JVM + java系统类库(小零件)
3)JDK:Java Development Kit (java开发工具包)--------开发java最小机构
除了包含JRE以外,还包含了开发java程序所必须的命令工具
JDK = JRE + 编译、运行等命令工具 -
安装JDK
可以从官方地址下载并安装JDK:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载安装时,要注意操作系统(OS)版本和JDK版本之间的对应关系 -
配置环境变量(了解)
1)JAVA_HOME:指向jdk的安装目录
2)CLASSPATH:表示类的搜索路径,一般简写为 .
3)PATH:指向jdk下的bin目录
变量
-
声明
int a; // 声明一个整形的变量,名为a
int b,c,d; // 声明三个整形的变量 -
初始化
第一次赋值
1)声明同时初始化
int a = 200;
2)先声明后初始化
int a;
a = 200; -
使用
1)对变量的使用就是对它所存的那个数的使用
2)变量的使用必须与数据类型匹配
3)变量在使用之前必须声明并初始化 -
命名
1)只能包含字母、数字、下划线_和$符,并且不能以数字开头
2)严格区分大小写
3)不能使用关键字
4)可以中文命名,但不建议。
遵循“驼峰命名法”、“帕斯卡命名法”
myScore(首字母小写其余大写)、MyScore(都是大写) -
变量的作用域/范围
从变量的声明开始,到包含它最近的大括号结束 -
变量的重名问题
作用域重叠时,变量不能重名
基本数据类型
java中有8种基本数据类型,每种数据类型占用的内存空间大小是不同的
1G = 1024M(兆)
1M = 1024KB(千字节)
1KB = 1024B(字节)
1B = 8Bit(位)
-
整数类型–>byte(1个字节)、short(2个字节)、int(整型,4个字节,最大表示范围:-2^31 ~2^31-1,即-21个多亿到21个多亿)、long(长整型,8个字节,最大表示范 围:-2^63 ~2^63-1)
int注意事项:
1)整数直接量默认为int,但不能超出范围,若超出范围则编译错误
2)两个整数相除/,结果还是整数,小数部分全部舍弃(不会四舍五入)
3)整数运算时,若超出范围则发生溢出,溢出是需要避免的
long注意事项:
1)长整型的直接量需要在数字后加L或l
2)运算时若有可能溢出,建议在第一个数字加L
3)System.currentTimeMillis()用于获取自1970.1.1零时到此时此刻的毫秒数 -
浮点型---->float(不常用,4个字节)、double(常用,双精度浮点型,8个字节)
double注意事项:
1)浮点型直接量默认为double类型,表示float需在数字后加F或f
2)double与float型数据在参与运算时,有可能会出现舍入误差
3) double用d表示(一般不用,小数不加f默认是double类型。)double salary = 4.44d -
字符类型—>char(2个字节)
1)采用Unicode字符集编码,每个字符都有一个对应的码。表现的形式是字符char,但本质上是整数int(0到65535)
(ASCII码: ‘a’–97 ‘A’–65 ‘0’–48)
2)字符直接量需放在单引号中,只能有一个。
char sex = ‘男’; //正确
char sex = ‘男性’; //错误
3)特殊字符需要\来转义 -
布尔类型–>boolean(1个字节)
- 只能赋值为true或false
- 默认值为false
基本数据类型间的转换
从小到大:
byte(默认值0)|char、short、int、long、float、double
-
两种方式
1)自动类型转换:小类型到大类型
int a = 5;
long b = a;
2)强制类型转换:大类型到小类型
(要转换成为的数据类型)变量
强转有可能发生溢出或丢失精度double a = 58.88; int b = (int)a; //58------------------丢失精度(强转为int去掉了小数部分) long e = 10000000000L; int g = (int)e; //-140000000----------溢出(强转超出了int范围)
-
两点规则:
1)整数直接量可以直接赋值给byte,short,char 但不能超范围
2)byte,short,char型数据参与运算时,先一律转换为int再运算
System.out.println(‘2’+‘2’); //100,字符型运算会先转换成int进行计算,字符’0’–>48,‘2’–>50