快捷键
15 个 Eclipse 常用开发快捷键使用技巧
1、alt+? 或 alt+/:自动补全代码或者提示代码
2、ctrl+o:快速outline视图
3、ctrl+shift+r:打开资源列表
4、ctrl+shift+f:格式化代码
5、ctrl+e:快速转换编辑器
6、ctrl+page down 或 ctrl+page up: 选项卡之间快速切换
7、shift+enter 及 ctrl+shift+enter: 在当前行上或者下边创建空白。
8、Alt+方向键上下:上下行交换内容或把当前行内容把上或下移动
9、Control+Alt+方向上下键:复制高亮显示的一行或多行
10、ctrl+m:当前编辑页面窗口最大化
11、ctrl+/:自动注释当前行或者选择的多行
12、ctrl+shift+/:自动注释掉选择的代码块
13、ctrl+d:删除当前行
14、ctrl+shift+x 和 ctrl+shift+y :英文字母大小写的转换
15、ctrl+shift+o:自动引入包和删除无用包
常见的命令行
#1. E: :盘符切换
#2. dir :查看当前目录下的所有文件
#3. cd change director :切换目录
#4. cd.. :回到上一目录
#5. cls (clear screen) :清理屏幕
#6. exit :退出终端
#7. ipconfig :查看电脑ip
#8. ping www.baidu.com :ping延迟
#9. tracert :查看路由表命令
#10. copy[要复制文件名][复制到的路径或文件夹] :复制文件
#11. move[要移动的文件名][文件移动的路径或者文件名] :文件移动
#12. md [目录名] :新建目录
#13. rd [目录名] :移除目录
#14. ren[旧名字][新名字] :重命名文件名
#15. del [文件名] :删除目录中的文件
#16. type 文件名.扩展名 :显示文件内容
#17. cd>文件名 :创建目录中文件
JDK
1、卸载
- 删除java的安装目录
- 删除 JAVA_HOME 文件
- 删除 path 下关于java的目录
- DOS命令查看:java -version
2、环境搭建
- 安装JDK
- 记住安装路径
- 配置环境变量
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5CLhAhxL-1614763505516)(C:\Users\Cyj\AppData\Roaming\Typora\typora-user-images\image-20210224152836263.png)]
- path 添加
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 测试java是否安装成功[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypK26YPB-1614763505520)(C:\Users\Cyj\AppData\Roaming\Typora\typora-user-images\image-20210224153415812.png)]
Java特性和优势
-
简单性
-
面向对象
-
可移植性:JVM
-
高性能
-
分布式
-
动态性:反射
-
多线程
-
安全性
-
健壮性
Java三大版本
-
JAV SE标准版:桌面程序,控制台开发….
-
Java ME:(了解)
-
Java EE企业版:服务器端开发、web端开发…
JDK、JRE、JVM
JDK1.8帮助文档地址:https://docs.oracle.com/javase/8/docs/api/
- JDK:Java Development Kit(Java开发工具)
- JRE:Java Runtime Environment(Java运行环境)
- JVM:Java Virtual Machine(Java虚拟机)
IDEA的使用
快捷方式
-
psvm
public static void main(String[] args) { }
-
sout
System.out.println();
-
ctrl+d:复制当前行到下一行
基础语法
1. 标识符的命名规范有哪些?
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
2. Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小。
int(4) boolean(最后会转化为 int 类型) long(8) char(2)
short(2) byte(1) float(4) double(8)
引用数据类型:类、接口、数组
3. 说明基本数据类型变量之间自动类型提升的运算规则。
byte、short、char→int→long→float→double
4. 说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
容量大→容量小
使用强转符:
( )
会造成精度损失
注释
- 单行注释 //
- 多行注释 / /
- 文档注释 /** */
- @authur:作者名
- @version:版本号
- @since:指明需要最早使用的jdk版本
- @see:说明相关主题
- @param:参数名
- @return:返回值情况
- @exception:可能出现的异常情况
- @throws :异常抛出情况
标识符
大小写敏感,不能使用关键字作为变量名或方法名。
1、关键字
- Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
- 标识符必须以大小写字母、美元符号$或者下划线开头。
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | defauit | do | double | else |
enum | extends | final | finally | float |
for | goto | if | impements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | staitic | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
数据类型
//八大基本数据类型
//整数
int num1=10;//占4个字节范围
byte num2=10;//占1个字节范围
short num3=20;//占两个字节范围
long num4=30L;//long类型后面要加L,占8个字节范围
//小数:浮点数
float num5=1.1F;//Float类型后面要加F,占4个字节范围
double num6=1.1;//占8个字节
//字符
char name='种';//这里String不是关键字,是类,占两个字节
//布尔值
boolean flag=true;//占一位,其值只有两个
- 整数扩展:
- 二进制 0b
- 十进制
- 八进制 0
- 十六进制 0x
- 浮点数扩展:
- float 有限 离散 舍入误差 大约
- double
//最好完全避免使用浮点数进行比较
//BigDecimal 数学工具类
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float f1 = 2312312312312312312313f;
float f2 = f1 + 1;
System.out.println(f1==f2); //true
-
字符扩展:
-
强制转换
①不能对布尔值进行转换
②不能把对象类型转换为不相干的类型
③在把高容量转换到低容量的时候,强制转换
④转换的时候可能存在内存溢出,或者精度问题
-
char c1='a';
char c2='中';
System.out.println(c1);//a
System.out.println((int) c1); //强制换行 //97
System.out.println(c2);//中
System.out.println((int) c2); //强制换行 //20013
//jdk7中数字较大时可以用下划线分离
int i=10_0000_0000;
int j=20;
int a=i*j;
System.out.println(a);//超出了整数的字节范围
long b=i*j;//这样也溢出,因为两个整数相乘还是整数,
long c=i*(long)j;//这样才行
System.out.println(b);
System.out.println(c);
//所有的字符本质还是数字
//编码 Unicode 表:(97=a 65=A) 2字节 0-65536 Excel 2 16 = 65536
char c3 = '\u0061';
System.out.println(c3); //a
//转义字符
// \t 制表符
// \n 换行
System.out.println("Hello\tWorld");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); //false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd); //true
//对象 从内存分析
变量
变量:变量名,变量值和作用域
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则(monthSalary)除了第一个单词以外,后面的单词首字母大写 (lastname→lastName)
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线(MAX_VALUE)
- 类名:首字母大写和驼峰原则(Man,GoodMan)
- 方法名:首字母小写和驼峰原则(run(),runRun())
变量作用域
public class Demo01 {
// 属性:变量
// 变量作用域:类变量、实例变量和局部变量
// 类变量 static
static double salary=2000;
// 实例变量:从属于对象,如果不自行初始化,这个类型为默认值 0、0.0
// 布尔值:默认是false
// 除了基本类型,其余的默认值都是null
String name;
int age;
// main方法
public static void main(String[] args) {
// 局部变量;必须声明和初始化值
int i=10;
System.out.println(i);
// 变量类型 变量名字 = new Demo01();
Demo01 demo01=new Demo01();
System.out.println(demo01.age);
// 类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
运算符 优先级()
- 算术运算符:+、-、*、/、%、++、–
- 赋值运算符:=
- 关系运算符:>、<、>=、<=、==、!=、instanceof
- 逻辑运算符:&&、||、!
- 位运算符:&、|、^、~、>>、<<、>>> (了解)
- 条件运算符: ?、: (了解)
- 扩展赋值运算符:+=、-=、*=、/= (了解)
public static void main(String[] args) {
// ++ :自增 -- :自减
int a = 3;
int b = a++; // a = a + 1 先给b赋值,再自增
int c = ++a; // a = a + 1 先自增,再给c赋值
System.out.println(a); // 5
System.out.println(b); // 3
System.out.println(c); // 5
a+=b; // a = a+b
a-=b; // a = a-b
// 幂运算 2^3 2*2*2=8 后期很多运算会使用一些工具来操作
double pow = Math.pow(2,3); // 8
System.out.println(pow);
// 不同数据类型运算自动转换为容量大的数据类型
// 如果运算时有Long类型,则转为Long类型;
// 如果运算时没有Long类型,则转为Int类型(不管有没有Int类型)
long d = 123123123123123L;
int e = 123;
short f = 10;
byte g = 8;
System.out.println(d+e+f+g);//Long类型 123123123123264
System.out.println(e+f+g);//Int类型 141
System.out.println(f+g);//Int类型 18
//逻辑运算
//与(and) 或(or) 非(取反)
boolean x = true;
boolean y = false;
System.out.println("x && y: "+(y&&x)); // 逻辑与运算:两个变量都为真,则结果才为true
System.out.println("x || y: "+(x||y)); // 逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(x && y): "+!(x&&y)); // 如果是真,则结果为假,如果是假则为真
// 短路运算
int z = 6;
boolean w = (z<4)&&(z++<4);
System.out.println(w);
System.out.println(z);
/* 位运算(效率高)
A = 0011 1100
B = 0000 1101
-------------------
A&B = 0000 1100 //如果对应位都为1,才为1 ,否则为0
A/B = 0011 1101 //如果对应位都为0,才为0 ,否则为1
A^B = 0011 0001 //(异或)如果对应位相同为0 ,否则为1
~B = 1111 0010 //(取反)对B进行取反
************************************************
<< 左移 相当于*2
>> 右移 相当于/2
*/
int a = 10;
int b = 20;
//字符串连接符 +
//在+运算符的两侧只要有一方出现了String类型,会把其他类型的操作数都转换成Srting类型再进行连接
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
//三元运算符(重点)
//x ? y : z
//如果x==true,则结果为y,否则结果为z
int score = 50;
String type = score <60 ?"不及格":"及格";
System.out.println(type);
}
包机制
包的本质就是文件夹。
一般利用公司域名倒置作为包名。 (www.baidu.com → com.baidu.www)
先定义 后导入 (package 定义包 、 import 导入包)
.*
会导入这个包下所有的类