Java-SUN
语言平台J2SE(桌面) ,J2ME(移动被安卓所取代),J2EE(企业主要用于web)
1.跨平台(操作系统)原理:
在任意操作系统上运行,一次编写到处运行。
依赖JVM(Java Virtual Machine)(不同系统Windows,Linux,mac有自己对应的JVM)
2. JRE和JDK
In a word,使用JDK开发完成的Java程序交给JRE运行
JRE(Java运行环境)
包括JVM和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,只需安装JRE就好了。
JDK(Java开发工具包)
让Java开发员使用的工具,包括了JRE(所以安装了JDK就不需要单独装JRE了)其中的开发工具包扩编译工具和运行工具。
3. 程序运行的流程
源文件program.java--------编译器------字节码文件program.class------解释器-------(能让机器识别的101001001001)program
4.注释
--单行注释: // .........
--多行注释 : /* ........... */
--文档注释 : /** ............ */
5.关键字
Java中特定含义的字符
特点:
1.组成关键字的字母全部小写
2.常见的代码编辑器对关键字有特殊颜色的标记。
例如:class,new,this等
6.变量(内存中最小的容器)
内存中的一小块区域:在程序执行的过程中,在某个范围内值可发生改变
组成:
1.对区域要有限定:数据类型
2.区域要有名称:变量名
3.区域必须有内容:初始化值
数据类型 变量名=初始化值(int a=0;)
7.计算机存储单元
·无论内存还是硬盘,计算机存储设备的最小信息单元是 位(bit)(又叫比特位),用b表示
·计算机最小的存储单元是 字节(byte),用B表示
(通常1个字节由连续的8个位表示)
8.数据类型
数据类型由基本数据类型和引用数据类型构成。
1.基本数据类型有四类八种
数值型(整型(byte,short,int,long),分别占用1.2.4.8字节
浮点型(float,double)),分别占用4,8字节
科学计数法E
字符型(char), 占用2字节
布尔型(boolean)构成true 或false。 占用1字节
注意:
(1)整型默认类型是int,浮点型默认double
(2)定义long类型数据时要加L或l,建议加L;
例如:long l=100000000000000L;
不加L可能报错,数字过大;(因为默认是int,而int只有四个字节)
(3)定义float类型数据时要加F或f,建议加F。
例如:float f=12.34F
不加F可能报出损失精度;(因为默认是double,double有八个字节,要说明float的四个字节则用F标记出来)
2.引用数据类型有类class,接口interface和数组[ ]
9标识符
给包,类,方法,变量等起名字
组成规则:由字符,下划线_,美元符$组成
注意:
(1)这的字符是Unicode字符集,包含英文大小写字母,中文字符(但一般不建议用汉字)和数字
(2)不能以数字开头
(3)不能是Java中的关键字
命名规则:见名知意
--常见规则
·包(文件夹)
全部小写,多级包名用点隔开; 如com.edu.demo
·类
一个单词的首字母大写;如StudentCat
多个单词,每个单词首字母大写,如HelloWorld
·变量/方法
一个单词首字母小写,如age.show();
多个单词,从第二个单词开始每个单词首字母大写maxAge.getAge(),或者setAge
10变量的定义和使用
·八种基本数据类型变量的定义
byte b=10;
short s=100;
int i=100;
long l=10000000000L;
float f=12.34F;
double d=12.34;
char c='s';
boolean bol=true;
·注意事项:
(1)变量未赋值,不能直接使用
即要使用(操作)之前,必须要有值;
(2)变量只在其所属范围(即所属的那对大括号)内有效
{int c=50;
}
System.out.println(c);
会报错,找不到c
(3)可以在同一行定义多个变量
int a,b;
a=0;
11类型转换
1.运算
------一般要求参与运算的数据的类型必须一致
但是举一例子如下
byte b=1;
int a =3;
System.out.println(a+b);
明显结果是可以输出的,a+b所得类型是可以接受的
思考:一般而言要求相加类型一致,而此处不一致why?又用什么类型来接收呢?
回答:
byte c=a+b; 报错
int c=a+b;可以直接输出
若用byte来接收会报错(损失精度);但用int 类型来接收就可以了
这就引出了一个问题-----类型转换
2.隐式转换
含义:若有长字节的类型数据参与运算时,先转换成长字节类型参与运算,因为长字节可以接受短字节,但短字节不能接受长字节
即所谓默认转换-----短字节可以自动默认转换成长字节
顺序如下:
------byte,short,char--->int--->long--->float--->double
举例:byte,short,char之间不能相互转换,参与运算首先转化为int类型
换句话说,即byte,short,char三种类型数据参与运算时,可以直接输入结果,但若用其他类型数据来接收时,应用int类型
byte a=1;
char b=2;
int c=a+b;
print(c);用整型来接收并输出是可行的或者直接输出a+b也可。
3.特别注意boolean类型不能转换为其他数据类型
4.强制转换
------目标类型 变量名 = (目标类型)(被转换的数据)
举例:
byte b=10;
int a=20;
int c=a+b;
明显此处作了一个类型提升,但是我们发现c=30,而明显byte范围内即可表示,但是默认(隐式)转换成了int
自然也可以强转成byte:byte c=(byte)(a+b)
但是建议:数据运算结果,应该是什么类型,就用什么类型接收,不要随意强转,可能会损失精度
网友评论