Eclipse基本使用
创建JAVA项目
1.打开新建项目窗口(File --> New --> Project)
2.在New Project窗口中选择Java Project创建项目
3.在New Java Project对话框
Project name:项目名称
Project Layout项目布局:Create separate~~~(为源文件和类文件穿件单独的文件夹)
创建类文件
1.打开新建类窗口(File --> New --> Class)
名称 | 描述 |
---|---|
Source folder | 源文件 |
Package | 包名 |
Name | 类名 |
(1)在Source folder(源文件夹)文本框中输入项目源程序文件夹位置,通常会自动填写该文本框,如不特殊,不需修改
(2)在Package(包)文本框中输入类文件的包名,这里暂时默认为空,不输入任何信息,这就会使用Java工程的默认包
(3)在Name(类名称)文本框中需要输入新建类的名称
(4)选中pubilc static void main(String[] args)复选框,向导在创建类文件时,会自动为该类添加main()方法,使该类成为可以运行的主类
导入项目文件
File --> Improt --> 选择General --> Existing Peojects into Workspace --> Next --> Browse --> Finish
Java编辑器
位于Eclipse的中心区域,可重叠多个编辑器,类型可以不同
打开编辑器
最常用的是双击源文件、右击源文件 --> Open With --> Java Editor
Java编辑器以不同的样式和颜色突出显示语法
程序代码注释、Javadoc注释、Java关键字
编写Java代码
①可以使用Ctrl+Alt+/快捷键自动补齐Java关键字
②Ctrl + shift + +,-改变字体大小
运行Java程序
在文件处右击 --> Run As --> Java Application
程序调试
1.设置断点(调试器每次遇到程序断点时都会将当前线程挂起)
编辑器中显示代码行号的位置双击添加或删除当前行的断点
在当前行号右击选择“Toggle Breakpoint”实现添加或删除
2.以调试(DeBug)方法运行Java程序
单击鼠标右键,在弹出的快捷菜单中选择Debug As–>Java Application,调试器将会在断点处挂起当前线程,使程序暂停
3.程序调试(在Debug视图中)
程序执行遇到断点被暂停后,可以通过Debug(调试)视图工具栏上的按钮执行相应的调试操作,如运行,停止等
单步跳入(F5)
跳过调用方法或对象的内部单步执行程序并暂挂线程
## 单步跳过(F6) 运行单独的一行程序代码,但是不进入方法内部,然后跳到下一个可执行点并暂挂线程
代码编辑
代码注释
(1)单行注释://
(2)多行注释:/* /
(3)文档注释:/* */
标识符与关键字
1.标识符(简单理解为一个名字)
由任意顺序的数字、字母、下划线、美元符号组成,数字不能开头、不能是Java关键字
2.关键字
(在编辑器中编程红色粗体的单词)
变量命名规范
告诉编译器数据类型,并分配空间
变量命名
(1)必须是一个有效的标识符
(2)不可以使用Java关键字
(3)不能重复
(4)尽量选择有意义的单词
常量(final)
final 数据类型 常量名称 = 值; final int COUNT = 12;
基本数据类型
1.整数类型(4)
数据类型 | 字节 | 位数 | 范围 |
---|---|---|---|
Byte | 1字节 | 8位 | -128~127 |
Short | 2字节 | 16位 | -32768~32767 |
Int | 4字节 | 32位 | -2147483648~2147483647 |
Long | 8字节 | 64位 |
8 bit(位) = 1 byte(字节)
1024 byte = 1 kb
1024 kb = 1 mb
1024 mb = 1 gb
1024 gb = 1 t
注意:在UTF-8中汉字占3个字节
Long属于比int高级的数据类型,所以在赋值的时候要在整数后面加上L或l
Long love = 123456L;
2.浮点类型(2)
若想使用float型小数,则需要在小数后面添加F或f
Double类型可以在后面添加D或d,明确数据类型(可以不加)
数据类型 | 字节 | 位数 | 范围 |
---|---|---|---|
Float | 4字节 | 32位 | 1.4E~3.4028235E38 |
Double | 8字节 | 64位 | 4.9E-324~1.7976931348623157E308 |
3.字符类型(1)
不同编码产生的字节大小不同
数据类型 | 字节 | 位数 | 范围 |
---|---|---|---|
Char | 2字节 | 16位 | 65536个字符(单引号) |
转义字符
一种特殊的字符变量,以反斜杠“\”开头,后跟一个或多个字符
转义字符赋值给字符变量时,一样要使用单引号
字符 | 描述 |
---|---|
\ddd | 1~3位八进制数据所表示的字符,如\456 |
\uxxxx | 4位十六进制所表示的字符,如\u0052 |
\’ | 单引号字符 |
\” | 双引号字符 |
\ | 反斜杠字符 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
4.布尔类型(1)
Boolean 1字节 值:ture/flase 二进制:00000001
数据类型转换
不同的类型占用的内存空间不同
隐式转换(自动转换)
byte < short < int < long < float < double
显式转换(强制转换)
语法:(类型名)要转换的值
例:int a = (int) 45.25;
显示转换导致精度损失
float f = (float) 3.1415923; // 数据失准
int i = (int) f; // 小数点丢失
byte b = (byte) 129; // 数值越界溢出
数据类型的默认值
数据类型 | 默认值 | 说明 |
---|---|---|
byte、short、int、long | 0 | 整型零 |
float、double | 0.0 | 浮点零 |
char | ‘’ | 空格字符 |
boolean | false | 逻辑假 |
引用类型String | null | 空值 |
运算符
赋值运算符
(=)
算数运算符
+(加) -(减) *(乘) /(除) %(取余) 自增(++) 自减(–)
自增、自减:前置会先将自身先增或减,后置会先参与表达式运算
关系运算符
==(等于) <(小于) >(大于) <=(小于等于) >=(大于等于) !=(不等于)
逻辑运算符
&&(与) ||(或) !(非)
位运算符
操作类型是整型,可以是有符号的也可以是无符号的,位运算符的两大类型:位逻辑运算符和位移运算符
运算符 | 描述 |
---|---|
&(与) | a&b |
|(或) | a|b |
~(取反) | ~a |
^(异或) | a^b |
<<(左位移) | a<<2 |
>>(右位移) | b>>4 |
>>>(无符号位移) | x>>>2 |
位逻辑运算符
&、|、^、~ :前三个是双目运算符、后一个是单目运算符
(1)位与运算符:&
参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位同时为 1,那么计算结果才为 1,否则为 0。因此,任何数与 0 进行按位与运算,其结果都为 0,最左边的符号位也是要参与运算的
(2)位或运算符:|
参与运算的数字,低位对齐,高位不足的补零。如果对应的二进制位只要有一个为 1,那么结果就为 1;如果对应的二进制位都为 0,结果才为 0
(3)位异或运算符:^
参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1
(4)位取反运算符:~
只对一个操作数进行运算,将操作数二进制中的1改为0,0改为1
运算结果
总结:以(0、1和false、true)
&(与):有0则为0,有false则为false
|(或):有1则为1,有true则为true
~(取反):0取1,false取true
^(异或):需要运算
位移运算符
(1)左移运算符:<<
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零
根据左移运算符可以推导出:
左移运算有乘以2的N次方的效果。一个数向左移动1位,就相当于乘以2的1次方,移动两位就相当于乘以2的2次方,也就是乘以4
(2)带符号右移运算符:>>
符号位不变,按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零
(3)无符号右移运算符:>>>
无符号右移在二进制串移动之后,空位由0来补充,与符号位是0还是1毫无关系;注意:这里的无符号是忽略符号位,也参与移位
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同
<<运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零
语法格式:需要移位的数字 << 移位的次数
num << 2:左移运算符。相当于num除以2*2
num >> 1:右移运算符。相当于num乘以2
>>>:无符号右移,忽略符号位,空位都以0补齐
在Java语言中,为了保证移动位数的有效性,以使右移位数不超过32位,采用了取余的操作,即a >>n 等价于 a >> (n%32)
左移<<:该数对应的二进制码整体左移,左边超出的部分舍弃,右边补零(低位补0)
253的二进制码1111 1101,在经过运算253<<2后得到1111 0100
“有符号”右移>>:该数对应的二进制码整体右移,左边的用原有标志位补充,右边超出的部分舍弃。如果值为正,则在高位补0,如果值为负,则在高位补1
无符号右移>>>:不管正负标志位为0还是1,将该数的二进制码整体右移,左边部分总是以0填充,右边部分舍弃。采用0扩展机制,也就是说,无论值的正负,都在高位补0
复合赋值运算符
三元运算符
**语法:**返回值 = 判断公式 ? 结果1 : 结果2
判断公式:一个返回布尔值的公式
int a = 1;
int b = a<3?2:3 结果:b=2
结果1:如果公式返回的是true,运算符结算返回结果1
结果2:如果公式返回的是false,运算符结算返回的结果2
圆括号
提升计算公式的优先级(和数学中的用法一致)、提升公式的可阅读性
int a =2,b=3;
a*b+5 先计算乘法;后计算加法 结果:11
a*(a+5) 先计算括号内,后计算括号外 结果:16
运算符优先级
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | () |
2 | 自增,自减,逻辑非,正负号,取反 | ++,–,!,±,~ |
3 | 乘,除,取余 | *,/,% |
4 | 加,减 | +,- |
5 | 左位移,右位移,无符号位移 | <<,>>,>>> |
6 | 大于,小于等于,大于,大于等于,判断继承关系 | <,<=,>,>=,instanceof |
7 | 等于,不等于 | ==,!= |
8 | 与 | & |
9 | 异或 | ^ |
10 | 或 | | |
11 | 并且 | && |
12 | 或者 | || |
13 | 赋值 | =,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=,>>>= |