栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 总复习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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.2fn",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 st=new Stack<>();
		String s=sc.next();
		int flag=0;
		for(int i=0;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 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
{
	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 map = new LinkedHashMap();
        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> list = new ArrayList>(map.entrySet());
        Collections.sort(list,new Comparator>() {
            
            public int compare(Map.Entry o1,
                               Map.Entry 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 {
    	
    	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();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/975730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号