JAVA 总复习
Posted 钟钟终
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 总复习相关的知识,希望对你有一定的参考价值。
易错考点:
1.通过类名不可以调用实例方法,可访问静态成员。
2.通过对象名可以访问静态成员,和非静态成员。
3.静态方法不能直接调用非静态方法,而实例方法可访问静态方法。
4.自定义类时不允许定义如下方法public void toString() 。
因为toString方法是内置在Object中的方法,重写的方法必须和父类一模一样。
重载:1.在同一个类中。2.方法名必须相同。3.与修饰符和返回值无关,不能修改。4.可修改参数列表,通过改变参数的类型、顺序、个数)进行重载。
重写:1.必须和父类方法一模一样。2.子类的方法权限必须大于等于父类的方法权限。
基础知识点:
import java.awt.print.Printable;
import java.util.Arrays;
import java.util.Scanner;
class Main
public static void main(String[] args)
double a=3.1415926;
System.out.printf("%.4f",a); //C语言输出
Scanner sc=new Scanner(System.in);
int b=sc.nextInt();
sc.nextLine(); //吸收换行符及本行之后字符
String s=sc.nextLine();
System.out.println(b+" "+s);
int[] c=new int[] 1,2,3,4,5;
System.out.println(Arrays.toString(c)); //数组转化为String类型输出
int[] d=Arrays.copyOf(c, 3);
System.out.println(Arrays.toString(d));
自定义异常类:
class Main
public static void main(String[] args) throws Myexception //抛出自己写的异常
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
if(a>0)
System.out.println("输入年龄合法。");
else
throw new Myexception("非法年龄");
class Myexception extends Exception
public Myexception()
// TODO Auto-generated constructor stub
Myexception(String s)
super(s);
常用系统类
public class Main
public static void main(String[] args)
int a=Integer.parseInt("123",8); //其他进制转化为十进制,返回类型为整数类型
System.out.println(a);
String b=Integer.toString(83,8); //十进制转化为其他进制,返回类型为String
int b1=Integer.parseInt(b); //字符串转为其他类型
System.out.println(b1);
String s="abcdefgh";
s=s.replace("a", "b"); //替换
int k=s.indexOf("bdd"); //查询子串
System.out.println(k);
System.out.println(s);
StringBuffer s1=new StringBuffer(s); //转为Stringbuffer,可变字符串
s1.append("ttt");
System.out.println(s1);
System.out.println(s1.reverse()); //翻转
s1.replace(0, 3, "aaa"); //指定范围(左闭右开)替换
System.out.println(s1);
s1.toString();
System.out.println(s1+"-------------");
BigInteger x=new BigInteger("123456789"); //大数计算
BigInteger y=new BigInteger("123456789");
BigInteger z=x.multiply(y);
System.out.println(z);
double g=3.1415926;
System.out.printf("%5.2f\\n",g); //日期格式化
Date now=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy:MM:dd hh:mm:ss");
System.out.println(sdf.format(now));
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.getTime());
System.out.println(sdf.format(calendar.getTime()));
栈的应用 括号匹配
public class Main
public static void main(String[] args)
Scanner sc=new Scanner(System.in);
Stack<Character> st=new Stack<>();
String s=sc.next();
int flag=0;
for(int i=0;i<s.length();i++)
if(s.charAt(i)=='('||s.charAt(i)=='[')
st.push(s.charAt(i));
else
if(st.empty()==true)
flag=1;
break;
Character c=st.pop();
if(s.charAt(i)==')'&&c=='(')
continue;
else if(s.charAt(i)==']'&&c=='[')
continue;
else
flag=1;break;
if(st.empty()==true&&flag==0)
System.out.println("YES");
else
System.out.println("NO");
Set集合中只有TreeMap才可以自定义排序
无法使用Collections.sort
public class Main
public static void main(String[] args)
Scanner sc=new Scanner(System.in);
Stu s1 = new Stu("20170001", "张三", 90);
Stu s2 = new Stu("20170003", "王五", 78);
Stu s3 = new Stu("20170002", "李四", 85);
Stu s4 = new Stu("20170001", "张三", 90);
Set<Stu> set=new TreeSet<>();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
for(Stu s:set)
System.out.println(s);
class Stu implements Comparable<Stu>
private String sno;
private String sname;
private int score;
public Stu(String sno, String sname, int score)
super();
this.sno = sno;
this.sname = sname;
this.score = score;
@Override
public int hashCode()
return Objects.hash(sno);
@Override
public boolean equals(Object obj)
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Stu other = (Stu) obj;
return Objects.equals(sno, other.sno);
@Override
public String toString()
return "sno=" + sno + " sname=" + sname + " score=" + score;
@Override
public int compareTo(Stu o)
// TODO Auto-generated method stub
return o.sno.compareTo(this.sno);
List排序四种方式:
1.类实现接口Comparable,内部定义CompareTo方法,Collections进行排序。
2.定义比较器类,定义排序规则
3.自定义类写成匿名类的形式。
4.lambda表达式,适用于简单的排序方式。
对map进行排序的方式
1.定义好map的数据。
2.将map中的Map.Entry放到list容器中,调用匿名类进行排序。
int n=sc.nextInt();
Map<Integer, Integer> map = new LinkedHashMap<Integer, Integer>();
for(int i=1;i<=n;i++)
String s=""+i;
StringBuffer s1 = new StringBuffer(s);
String s2=s1.reverse().toString();
int tmp= Integer.parseInt(s2);
map.put(i,tmp);
List<Map.Entry<Integer,Integer>> list = new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>()
public int compare(Map.Entry<Integer, Integer> o1,
Map.Entry<Integer, Integer> o2)
if(o1.getValue()==o2.getValue())
return o1.getKey()-o2.getKey();
return o2.getValue()-o1.getValue();
类和对象 例题
public class Test
public static void main(String[] args)
Circle c=new Circle(3);
System.out.println(c.toString());
Rectangle r=new Rectangle(7, 5);
System.out.println(r.toString());
interface ShaprArea
double getArea();
double getPerimeter();
class Circle implements ShaprArea
double r,area,per;
Circle()
Circle(double r)
this.r=r;
area=r*r*Math.PI;
per=2*r*Math.PI;
@Override
public double getArea()
return area;
@Override
public double getPerimeter()
return this.per;
@Override
public String toString()
return "半径=" + r + ", 面积=" + String.format("%.2f", area) + ", 周长=" + String.format("%.2f", per) ;
class Rectangle implements ShaprArea
int w,l,area,per;
public Rectangle(int w,int l)
this.w=w;
this.l=l;
this.area=w*l;
this.per=2*(w+l);
@Override
public double getArea()
return area;
@Override
public double getPerimeter()
return per;
@Override
public String toString()
return "Rectangle [w=" + w + ", l=" + l + ", area=" + area + ", per=" + per + "]";
输入输出 利用数组
public class Test
public static void main(String[] args) throws Exception
/* 字符输入流,用字符数组
FileReader fr=new FileReader(new File("e:/1.txt"));
FileWriter fw=new FileWriter(new File("e:/2.txt"));
char[] c=new char[10];
int len=0;
while((len=fr.read(c))!=-1)
fw.write(c,0,len); //从下标为0地方开始写,长度为本次读取的len
fr.close();
fw.close();
*/
InputStream is=new FileInputStream(new File("e:/1.txt"));
OutputStream os=new FileOutputStream(new File("e:/2.txt"),true);
byte[] by=new byte[1023];
int len=0;
while((len=is.read(by))!=-1)
System.out.println(len);
os.write(by,0,len);
is.close();
os.close();
以上是关于JAVA 总复习的主要内容,如果未能解决你的问题,请参考以下文章