Java开发
老师:罗乃希
java环境变量
配置系统环境变量
path : java bin目录;
JAVA_HOME :设置java 1.xx的目录 用于快速切换系统java版本
eclipse应用商店 eclipsemarketplace
可在help中install new software
eclipse -》记得设置utf-8 coding
windows-》preferences-》workspace 左下改为utf-8
eclipse
-》windows-》preference-》java -》installed jre 可以选择默认使用的jre
命名规范:
驼峰法则:适用于文件名 ShangHai
首母小写 之后单词首字母全部大写 shangHai
常亮 一般全部大写 之间用_隔开 SHANG_HAI
下划线开头 一般用于和系统变量区分 : 例如 _char 用户自定义
char 系统保留关键字
ait+/可以快速补全选择
ctrl+/ 是选中逐行注释
ctrl+shift+/ 是选中集体注释
ctrl+shift+\是选中集体注释取消
else if 分支判断 有一个成立则停止 即后方的else if 不会再运行
if则将所有判断都执行
Java语言支持的8中基本数据类型是:
- byte
- short
- int
- long
- float
- double
- boolean
- char
强制转换至string 可以直接 +"" 进行自主转换
Switch 适用于单个值判断
当条件成立时 会从该分支继续向下运行 直到遇见break 或者最后的花括号(default:默认放在最后所以不加break,如果放在前面记得补上)
if比较适用于 比较一个区间范围内的值
switch比较适用于固定的选择不多的一个分支结构 常见于菜单选择
但这两种分支大多数情况下是可以实现互换的
三目运算:
(逻辑表达式)?(表达式1):(表达式2)
如果逻辑表达式为真返回 表达式1的值 如果逻辑表达式为假则返回表达式2的值
用于简化if分支语句代码量
i++ 先赋值再+1
++i 先+1再赋值
java 短路与 短路或
左边&&右边
左边如果为假 则右边将不在运行
左边||右边
当左边为真时 则右边不在运行
String ch ="y";
equals是用于判断值 ==判断包括类型
"y".equals(ch)
ch.equals("y")
String的拼接用的是append 所以
s1="1";s2="2";
s3="12";
s3==s1+s2; //false
s3==s1+"2";//false
//但是如果用了final修饰
final String s4="1";
s3==s4+"2"; //true
//定义方法getS返回2
public static String getS(){
return "2";
}
s3=="1"+getS(); //false 编译器无法保证getS方法返回"56"且不变,所以无法直接优化成"56"),所以为false。
public native String intern();
这个方法的意思是:如果当前字符串存在于字符串池中,就返回池中的字符串对象的引用;否则添加当前字符串对象到字符串池中,然后返回当前字符串对象的引用。
public static void main(String[] args) {
String s = new String(new char[]{'1','4','7'});
s.intern();
System.out.println(s == "147"); //true 如果不加s.intern() 返回false
String s2 = new String("258");
s2.intern();
System.out.println(s2 == "258"); //false
}
利用3目运算优化代码:(不适用于复杂逻辑)
/*if(flag){
System.out.println("登陆成功");
}else
System.out.println("机会用完,账号被锁定");*/
//优化后:
System.out.println(flag?"登陆成功":"机会用完,账号被锁定");
scan.close();
(当拥有公用语句时(此处为System.out.println),所以可以使用)
break continue 流程控制语句
相同点:都不再执行后面的语句
不同点:break 跳出循环
continue 跳出本次循环 继续下次(注意下次循环的判断仍然需要进行 包括do while)
在if,for,while等结构体中声明的变量是局部变量,出了本身所在的{}就会被销毁
数组
int[] arr1 = new int [数组长度] //从索引0开始 索引最大值为数组长度-1
int[] arr2 = new int[]{1,2 ,3,4};
int[] arr3 = {1,2,3};
上面第2,3种可以直接初始化数组并赋值
而第一种系统会默认为数组赋值
只给数组长度的数组在声明时会自动赋值 : int 类型赋0 String 类型 赋null double 0.0 引用数据类型 赋null
Java toString源码:
public static String toString(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
int[] arr1=null;
int[] arr2=new int[]{};
Arrays.toString(数组名称) 将数组转为string显示出来 只能打印一维数组
boolean
equals(数组1,数组2); 对比两个的值 数组的话 必须索引和值都相同 才会返回true
sort(数组名称) 对数组进行排序 默认升序(包括字母字符 按unicode)
Arrays.fill(数组名称,需要修改成的值);
int[] arr_new =
Arrays.copyOf(原数组名称,数组长度) 可以定义新数组 和其长度
新数组长度短 则干掉最后的
新数组长度长 则增加默认值
int
Arrays.binarySearch(array,val) 查询值为val在数组array中的下标 要求数组升序排列
二维数组 int[][] arr =new int [二维数组长度][];