JavaSE -Java介绍与开发环境
一、本章任务
- 计算机语言发展
- Java版本
- 3个业务方向
- Java特性
- JDK安装
- 文本编辑器软件安装
- 第一个程序:HelloWorld
- Eclipse安装
- 开发规范
- 运行机制
- 标识符、关键字、保留字
- 变量、常量
- 基本类型
- 基本类型转换
二、知识点
1、计算机语言发展
机器语言,汇编语言,高级语言(C/C++,Java等)
2、Java版本发展
我们讲课以1.8为主
3、3个业务方向
JavaSE,JavaEE,JavaME
4、Java特性
学习门槛较低,面向对象,平台无关
java 是 准动态强类型解释型语言
动态语言 :
使用变量的时候不需要确定数据类型,而确定数据类型是在第一次赋值的时候,而赋值是发生在运行时,程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的,优点为方便阅读,清晰明了,缺点为不方便调试
静态语言 :
在编译的时候,可以理解为运行之前,就需要确定数据类型,而对应的空间中,只能存放指定的类型的值
强类型语言 :
强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用,一旦数据类型确定,类型不能被改变(除非强制类型转换才可以),且不同类型的值不能进行相加等运算操作
弱类型语言 :
根据上下文环境而变化数据类型,不需要强制类型转换
编译型语言 :
通过指定的编译器,一次性把源码编译成一个指定平台可以执行的机器码,然后执行这个编译之后的文件 运行速度较快一些
解释型语言 :
使用专门的解释器对源码进行动态解释(运行多少就解释多少),不会生成新文件,运行速度较慢一点
按照java特性 属于 静态,强类型,解释语言,那为什么说是准动态呢?
主要体现在 反射机制,动态编译,动态执行javascript代码,动态字节码操作,动态转换类型
能够让java的特性,保存了静态语言的特性,又弥补了静态语言的缺陷,更加接近动态语言的特性,所以又有准特性之说
5、JDK安装
第一步:找到对应操作系统及位数的安装程序(如64位windows对应的是jdk-7u67-windows-x64.exe)下载并双击,运行安装程序。这个环节要注意,安装路径中不要包括中文或者空格。安装路径有两处,JDK,JRE,建议安装路径修改为
D:\Java\jdk1.7.0_67(JDK),D:\Java\jre7(JRE)。
第二步:配置3个环境变量:JAVA_HOME,PATH,CLASSPATH。其中CLASSPATH在JDK1.6及之后的版本中可以不配置。对于windows来说,环境变量名与值是不区分大小写的。java_home与JAVA_HOME是一个东西。
系统环境变量这里 新建 JAVA_HOME 值为 : jdk安装路径 如 C:\Program Files\Java\jdk1.7
新建 CLASSPATH(当下也可以不配置,至于这个是干什么的呢?咱们后面再说) 值为 : .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
在 Path(让操作系统用的,让系统去找我们追加的命令,默认在当前目录下,比如c:user\administrator) 后面 追加 ;%JAVA_HOME%\bin\; 如果 原来Path里面的值是以 ; 结尾 就追加 %JAVA_HOME%\bin\;
第三步:验证操作:2条命令。javac -version,java -version。能正常输出版本信息即安装成功。
6、文本编辑软件安装
Sublime text 2,VIM, notepad++,等
尽量不要使用windows自带的记事本,以免不必要的麻烦
7、Hello World
D盘创建记事本,输入以下代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world");
}
}
另存为HelloWorld.java(有的系统可能隐藏了文件扩展名,要设置为不隐藏,以免保存成了HelloWorld.java.txt)
打开命令提示符CMD,运行javac HelloWorld.java,此命令的作用是将上面的源文件编译为字节码文件。如果源代码无错误,通过编译后,在当前目录下会生成一个HelloWorld.class文件。
运行java HelloWorld,此命令的作用是运行刚刚我们编写的程序。如果无错误,会在当前命令提示符窗口中输出一个字符串hello world
8、Eclipse安装
无需安装,直接解压缩即可,对应的文件夹下有一个eclipse.exe,双击即可运行
工作空间
运行 eclipse.exe之后 会有弹框提示 然后会选择 workspace 工作空间,就是以后在eclipse中写的代码和项目都会保存到这个空间
配置Eclipse
1 打开eclipse之后 点击 project 下面有个 build Automatically 这个是自动构建(自动编译)就是我们更改代码或者写代码的时候,保存一下或者清理一下,都会把所有的代码自动编译,很方便,但是每次启动,也会把所有的代码编译一下,所以会导致打开的时候卡一下
不勾选的话,在有关联关系的时候,可能会因为找不到编译之后的class文件而报错,需要手动编译所有代码
如果不勾选,就是在运行程序的时候再编译
2 改字符编码
window ---> preferences 搜索 workspace 选择 workspace 改为 utf-8
3 更改字体
window ---> preferences ---> General ---> Colors And Fonts ---> Basic ---> Test Font
4 用Eclipse写HelloWord 测试
以HelloWord项目为例
9、开发规范
Java严格区分大小写,public与Public是不一样的。
一个文件建议只定义一个类,且在类定义前面加public,文件名与类名要严格一致。如果一个文件中定义了多个类,只能有一个类前面加public,而且文件名必须与加public的类名严格一致。
Java Application程序的入口是main方法,即public static void main(String[] args) {}。写法固定,错一个字母也不行,大小写也要严格一致。包含main方法的类必须前面加public。
10、运行机制
结合上面的hello world程序讲解。
我们的源文件是.java文件,它是不能运行的,必须通过javac 编译为.class文件后才能运行。
java命令后面跟的必须是类名,不要再加.class。
这时,Java会寻找对应的.class文件(又叫类文件,字节码文件),找到对应的public类(主类),在主类中找入口方法main方法,找到后,开始从上向下执行main方法中的语句。语句以英文分号结束,语句对应着字节码指令。比如,System.out.println("hello world");这条语句的作用就是将字符串hello world输出到标准输出(即命令提示符的窗口中)。
11、程序基础
标识符、关键字、保留字
规则(强制与非强制)
标识符 : 标识符就是用于给程序中的变量、类、方法命名的符号。标识符可以有编程人员自由定义,但需要遵循一定的命名规则。
强制规则:
严格区分大小写
只能是字母、数字、下划线_、美元符号$
数字不能开头
不能使用关键字保留字
非强制规则:
驼峰规则。见名知义。
关键字,Java语言中用以特殊用途而预占用的单词或标识符称之为关键字,Java中的关键字均为小写。保留字也是关键字,只是现在未投入使用
关键字 :
class | extends | implements | interface |
package | break | case | continue |
do | if | else | for |
switch | while | false | true |
boolean | byte | char | short |
long | float | double | try |
throw | throws | finally | abstract |
native | private | protected | public |
synchronized | transient | volatile | instanceof |
super | void | assert | enum |
const |
除了上面表格中,goto和const为Java语言中的两个保留字。保留字是指预留的还未被使用的关键字,但可能在将来的版本中使用
变量、常量
变量分类(按作用范围)
数据类型、变量名、值、作用范围(作用域)。
按作用范围,变量分为
局部变量,实例变量(又叫属性、字段、域),类变量(又叫静态变量)。
常量,分为
字面量(又叫直接量)。像1、”1”这样的。
和 final修饰的”变量”。
基本类型
数据类型是为了把数据分成所需内存大小不同的数据,编程的时候需要用大的数据才申请大内存,这样可以充分利用内存。
Java语言是一种强类型语言,要求所有变量先声明后使用。目的就是为了保证变量或者表达式在编译时就能够确定其类型,并为其分配相应的内存。
分类 :
2.1整型
2.1.1 Java整型
byte/short/int/long
2.1.2整型取值范围
Java语言整数型默认为int类型,如果要声明成long类型在变量值后加入L,如:long l = 123L
类型 | 占用存储空间字节数 | 数值范围 |
byte | 1 | -128~127 |
short | 2 | -2的15次方~2的15次方-1(-32768~32767) |
int | 4 | -2的31次方~2的31次方-1 |
long | 8 | -2的63次方~2的63次方-1 |
2.1.3 Java整型常量的三种表示方法
十进制:如123=1*100+2*10+3*1=123
八进制,八进制0开头:如:013=1*8+3*1=11
十六进制,十六进制0x开头:如:0x23=2*16+3*1=35
【进制转换】
- 10进制到二进制
示例:求十进制数10的二进制
6/2=3 余 0
3/2=1 余 1
1/2=0 余 1
将余数逆序输出就是6的二进制表示:110,位数不够补零 - 二进制到十进制
示例:求二进制110的十进制
规则:取出最后一位,从2的0次方开始乘,将得到的结果相加即可
0*2的0次方=0
1*2的1次方=2
1*2的2次方=4
110的十进制为:0+2+4=6 - 八进制与二进制、十进制转换类同
2.2浮点型
2.2.1 Java浮点型
float/double
2.2.2两种表示形式
十进制形式:例如:123.456 0.314
科学计数法:例如:1.23456E2 3.14E-1
2.2.3 Java浮点型取值范围
浮点声明默认是double类型,若要是float,请在尾部添加f或是F。如:float myFloat=1.23
类型 | 占用存储空间字节数 | 数值范围 |
float | 4 | -3.4E38 ~ 3.4E38 |
double | 8 | -1.7E308~ 1.7E308 |
2.3布尔型
适用于逻辑运算,用于程序流程控制
只允许取值为true,false,不可以任何其它形式代替
[示例]
boolean real=true; //正确
boolean notReal=false; //正确
boolean read2=1; //错误
boolean notReal2=0; //错误
2.4字符型
2.4.1 Java字符型
- 通常意义上的字符,用单个引号括起来的单个字符
如'1','a','b'等等
- Java采用Unicode编码(即为全球统一语言编码),均可以用十六进制表示编码值
char c = '\u0012'; - 转义字符,用'\n'来表示,即为转变之前的意义,但依然是个字符
char c='\n'; //表示换行符
基本类型转换
- 布尔类型不能与其它类型做任何转换
- 数值型、字符型可以相互转换,规则如下:
- 容量小的自动转换成表数范围容量大的,但byte,short,char不能相互转换,均转化成int做计算,当然byte b = 1;short s = b; 这样转换不会报错,因为会先转为int 默认转换为short, byte b = 1; 这和时候1其实是int的字面量,只不过这样可以直接转为byte和short,但是不能把int变量直接赋值给byte和short
- 容量大小排序为:byte,char,short<int<long<float<double
- 容量大转换为容量小的,要加强制转换符,此时容易丢失精度
- 多类型混合运算时,系统会自动转换成统一类型(大容量数据)后再进行计算,即先类型转换后计算
【问】:能否演示一下基本类型之间的转换
1.演示byte,short,char运算会转成int
2.演示大容量和小容量数据运算会先统一类型
三、总结
见JavaSE-Java介绍总结.xmind
四、作业
1、熟练实现Elicpse安装
2、在Eclipse中实现第一个程序HelloWorld