1.try catch必须catch API文档里面有throw紧接的方法里面的异常,Throwable-
Error,Exception;Exception-RuntimeException,必须捕获的异常
2.子类异常捕获不能在基类捕获后面,重写方法需要抛出与原方法所抛异常类型一致异
常或不抛出异常
3.java的数组是引用类型,不能存放在STACK空间,java语言中声明数组时不能指定其
长度(数组中元素的个数)。因为Java数组里面的数据是分配在HEAP里面,即使数组里
面的数据类型为基本数据类型
4.数组定义与为数组元素分配空间和赋值的操作分开进行(动态初始化)或在定义数组
的同时就为数组元素分配空间并赋值(静态初始化),数组有一个属性为length,指明
数组的长度。
5.public static void main(String[] args){
if(args.length<3){
System.out.println("Usage:java Test \"p1\" \"op\" \"p2\"");
System.exit(-1);
}
double d1=Double.parseDouble(args[0]);
double d2 = Double.parseDouble(args[2]);
double d = 0 ;
if(args[1].equals("+")) d=d1+d2;
else if(args[1].equals("-")) d = d1-d2;
else if(args[1].equals("*")) d = d1*d2;
else if(args[1].equals("/")) d = d1/d2;
else{
System.out.println("Error operator");
System.exit(-1);
}
System.out.println(d);
}
6.public class NumSort {
public static void main(String[] args){
int[] a = new int[args.length];
for(int i=0;i<args.length;i++){
a[i] = Integer.parseInt(args[i]);
}
print(a);
envolvedSelectionSort(a);
print(a);
}
private static void envolvedSelectionSort(int[] a){
int k,temp;
for(int i=0;i<a.length;i++){
k = i;
for(int j=k+1;j<a.length;j++){
if(a[k]>a[j]){
k=j;
}
}
if(k!=i){
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
private static void selectionSort(int[] a){
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[j]<a[i]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
private static void print(int[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i] + " ");
}
System.out.println();
}
}
7.public class DateSort{
public static void main(String[] args){
Date[] days = new Date[5];
days[0] = new Date(2011,4,5);
days[1] = new Date(2013,4,5);
days[2] = new Date(2010,4,5);
days[3] = new Date(2011,4,5);
days[4] = new Date(2011,9,5);
bubbleSort(days);
for(int i=0;i<days.length;i++)
System.out.println(days[i].year+" "+days[i].month+"
"+days[i].day);
Date day = new Date(2004,4,6);
}
public static int binarySearch(Date[] days ,Date d){
if(days.length==0)
return -1;
int startPos = 0;
int endPos = days.length-1;
int m = (startPos+endPos)/2;
while(startPos<=endPos){
if(d.compare(days[m])==0)
return m;
if(d.compare(days[m])>0)
startPos = m+1;
if(d.compare(days[m])<0)
endPos=m-1;
m=(startPos+endPos)/2;
}
return -1;
}
public static Date[] bubbleSort(Date[] a){
int len = a.length;
for(int i=len-1;i>=1;i--)
for(int j=0;j<=i-1;j++){
if(a[j].compare(a[j+1])>0){
Date temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
return a;
}
}
class Date {
int year,month,day;
Date(int y,int m,int d){
year = y; month=m;day=d;
}
public int compare(Date date){
return year>date.year ? 1
: year<date.year ? -1
: month > date.month ? 1
: month < date.month ? -1
: day > date.day ? 1
: day < date.day ? -1:0;
}
}
8.class Count3Quit2
{
public static void main(String[] args)
{
KidCircle kc = new KidCircle(500);
int countNum = 0;
Kid k = kc.first;
while(kc.count>1){
countNum++;
if(countNum==3){
countNum = 0;
kc.delete(k);
}
k=k.right;
}
System.out.println(kc.first.id);
}
}
class Kid
{
int id;
Kid left;
Kid right;
}
class KidCircle
{
int count = 0;
Kid first,last;
KidCircle(int n){
for(int i=0;i<n;i++){
add();
}
}
void add(){
Kid k = new Kid();
k.id = count;
if(count <= 0){
first = k;
last = k;
k.left = k;
k.right = k;
}else{
last.right = k;
k.left = last;
k.right = first;
first.left = k;
last = k;
}
count++;
}
void delete(Kid k){
if(count<=0){
return;
}else if(count==1){
first = last = null;
}else{
k.left.right = k.right;
k.right.left = k.left;
if(k==first)
first = k.right;
else if(k==last)
last = k.left;
}
count--;
}
}
8.public static String valueOf(...)可以将基本数据类型数据转换为字符串,调用
的是参数对象对应的toString()方法
9.public class Split{
public static void main(String[] args){
int j=1234567;
String sNumber = String.valueOf(j);
System.out.println("j 是"+sNumber.length()+"位数");
String s = "Mary,Female,7666";
String[] sPlit = s.split(",");
for(int i=0;i<sPlit.length;i++)
System.out.println(sPlit[i]);
}
}
多态是OOP中最核心的内容
9.String s ="adafdafdsadsfd";
String sToFind="ad";
int count=0;
while(s.indexOf(sToFind)!=-1){
count++;
s=s.substring(s.indexOf(sToFind));
}
10mobile fee
包装类,parse...()方法,valueOf()方法,minvalue maxvalue
Math,random()方法
File类对象代表文件名
StringTokenizer以被正则表达式的功能替代了。
Math.round(b);对b四舍五入到小数点后一位;
windows 和linux下用“/”都没有问题,而“\”在java里面是转义字符的意思要“\\
”来表示反斜杠,但在LINUX下面不能被识别
1970年0时0分0秒。。。到现在的毫秒数的方法存储时间
import java.io.*;
public class FileTest{
public static void main(String[] args){
String separetor = File.separetor;
String filename = "myfile.txt";
String directory = "mydir1" + separetor +"mydir2";
File f = new File(directory,filename);
if(f.exists()){
System.out.println("name : "+f.getAbsolutePath());
System.out.println("sizeof file: "+f.length());
}else{
f.getParentFile().mkdirs();
try{
f.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
11.按层次打印文件夹目录
import java.io.*;
class ListFile2
{
public static void main(String[] args)
{
File f = new File("e:/test/sxt");
System.out.println(f.getName());
tree(f,1);
//System.out.println("Hello World!");
}
private static void tree(File f,int level){
String preStr = "";
for(int i=0;i<level;i++)
preStr+=" ";
File[] children = f.listFiles();
for(int i=0;i<children.length;i++){
System.out.println(preStr+children[i].getName());
if(children[i].isDirectory()){
tree(children[i],level+1);
}
}
}
}
12.枚举类型可以限制选择类型,在编译时就可以检查