變量盡可能靠近使用的地方
常量 大寫
類常量 用static final修飾(定義在main函數(shù)方法以外)

實(shí)線:無信息丟失
虛線:可能損失精度
實(shí)線轉(zhuǎn)換到虛線無需強(qiáng)制轉(zhuǎn)換類型 自動(dòng)轉(zhuǎn)換
Math.round(); 將數(shù)組轉(zhuǎn)換成離他最近的整數(shù) (也需要強(qiáng)制轉(zhuǎn)換)
位運(yùn)算符 用來操作二進(jìn)制
3<<1 左移1位 32(1)=6
3<<2 左移2位 32(2)=12
右移 除以2的次冪運(yùn)算
6>>2=1 帶余除法 不要余數(shù)
String類
兩個(gè)字符相等 但是不區(qū)分大小寫時(shí) 用equalsIgnoreCase();
==是判斷地址
Sting只有字符串常量共,+或者subString 操作產(chǎn)生的結(jié)果不共享
空串和NULL串
空串 String a="";null串 String b=null;
空串:長度0 內(nèi)容為空的字符串
null串:沒有任何對(duì)象和該變量關(guān)聯(lián)
判斷字符串是否為空
if(str.lengh()==0)
或者
if(str.equal(""))
判斷字符串是否為null
if(srt==null)
判斷既不是null也不是空串
if(str!=null&&str.length()!=0)
首先要檢查str是否為null 因?yàn)樵趎ull串上調(diào)用方法 會(huì)出現(xiàn)錯(cuò)誤
StringBuider 由較短字符串構(gòu)建字符串時(shí)使用
前身StringBuffer 效率低 但是允許采用多線程的方式執(zhí)行添加或者刪除
單線程使用StringBuider
讀取輸入
Scanner
一種簡單的文本掃描器 讀取一個(gè)文本文件
Scanner in=new Scanner(new File("D:\\IO\\TEST.txt"));
while (in.hasNext()) {
String str = in.nextLine();
System.out.println(str);
}
printf格式化輸出System.out.printf("%tc",new Date());
for 循環(huán)體 使用內(nèi)部變量
int i=0;
for(i=0;i<10;i++)
BigInteger long double 無法滿足時(shí)
int k=60;
int n=490;
BigInteger kit=BigInteger.valueOf(1);
for (int j = 1; j <=k; j++) {
kit=kit.multiply(BigInteger.valueOf(n-j+1)).divide(BigInteger.valueOf(j));
}
System.out.println(kit);
數(shù)組
二維數(shù)組 在數(shù)組中創(chuàng)建數(shù)組
不規(guī)則數(shù)組 創(chuàng)建 調(diào)用Arrays工具類方法輸出
public class Array_1 {
public static void main(String[] args) {
// 不規(guī)則數(shù)組 創(chuàng)建 調(diào)用Arrays工具類方法輸出
int[][] a=new int[3][];
a[0]=new int[2];
a[0][0]=13;
a[0][1]=14;
System.out.println(Arrays.toString(a[0]));
}
}
創(chuàng)建二維數(shù)組并打印
public class Array_2 {
public static void main(String[] args) {
int[][] a={{1,2},{1,2,3,4},{5,6,7}};
// 讀取數(shù)組 按行讀取
/* for (int[] num:a)
{
System.out.println(Arrays.toString(num));
}*/
// 讀取數(shù)組 按照個(gè)數(shù)讀取 可以
for (int[] num: a )
for (int num1:num){
System.out.println(num1);
}
}
}
通過不規(guī)則輸出 輸出數(shù)組三角形
public class Array_Test1 {
public static void main(String[] args) {
final int NMAX=5;
int[][] odd=new int[NMAX+1][];
// 創(chuàng)建數(shù)組三角形
for (int i = 0; i <odd.length; i++) {
odd[i]=new int[i+1];
}
// 賦值
for (int i = 0; i <odd.length; i++) {
for (int j = 0; j <odd[i].length; j++) {
odd[i][j]=(int)(Math.random()*10+1);
}
}
// 輸出結(jié)果
for (int odds[]:odd){
System.out.println(Arrays.toString(odds));
}
}
}
選擇排序
package JavaSE.Unit3;
/**
* @ClssName selectionTest
* @Autor Yu
* @Description TODO
* @Date 2019/2/27 21:00
* Version 1.0
* 選擇排序最優(yōu)算法
*/
public class selectionTest {
public static void main(String[] args) {
int[] arr={9,16,21,18,59,51,60};
int temp=0;
for (int i = 0; i <arr.length-1; i++) {
for (int j = i+1; j <arr.length; j++) {
if (arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}
冒泡排序及優(yōu)化
package JavaSE.Unit3;
import java.util.Arrays;
/**
* @ClssName bubbleTest
* @Autor Yu
* @Description TODO
* @Date 2019/2/28 20:15
* Version 1.0
* 冒泡排序
*/
public class bubbleTest {
public static void main(String[] args) {
System.out.println("*************************");
int[] staff={6,1,7,5,4,9};
int temp=0;
for (int j = 0; j <staff.length-1; j++) {
boolean flog=true;
for (int i = 0; i < staff.length-j-1; i++) {
if (staff[i] > staff[i + 1]) {
temp = staff[i];
staff[i] = staff[i + 1];
staff[i + 1] = temp;
flog=false;
}
}
System.out.println(flog);
if (flog)
break;
System.out.println(Arrays.toString(staff));
}
}
}
二分查找
import java.util.Arrays;
/**
* @ClssName BinarySearchTest
* @Autor Yu
* @Description TODO
* @Date 2019/2/28 20:48
* Version 1.0
* 二分查找
*/
public class BinarySearchTest {
public static void main(String[] args) {
int[] arr={30,20,50,10,80,9,7,12,100,40,8};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
System.out.println(myBinarySearch(arr,40));
}
private static int myBinarySearch(int[] arr, int value) {
int low=0;
int high=arr.length-1;
while (low<=high){
int mid=(low+high)/2;
if (value==arr[mid])
return mid;
if (value>arr[mid]){
low++;
}
if (value<arr[mid])
low--;
}
return -1;
}
}