java 知识点 2(基础语法)

文章目录

      • 1、匿名对象
      • 2、ArrayList集合
      • 3、==
      • 4、权限的大小关系
      • 5、super、this(后面带括号时)
      • 6、多态中成员变量、成员方法
      • 7、final
      • 8、权限
      • 9、throws和throw
      • 10、java数据持久化,Properties配置文件
      • 11、java数据持久化,excel文件
      • 12、StringTokenizer对字符串分析
      • 13、Timer计时器

1、匿名对象

在这里插入图片描述

匿名对象只能使用一次

2、ArrayList集合

java 知识点 2(基础语法)_第1张图片
在这里插入图片描述
ArrayList存储基本数据必须使用对应的包装类
java 知识点 2(基础语法)_第2张图片

3、==

对于基本类型来说, == 是比较值

对于应用类型来说, ==是比较的地址值

4、权限的大小关系

在这里插入图片描述

5、super、this(后面带括号时)

使用super()或this()只能在子类第一个构造方法的第一个分号前使用。且两个不能同时使用。

6、多态中成员变量、成员方法

成员变量
在这里插入图片描述
成员方法
在这里插入图片描述

7、final

java 知识点 2(基础语法)_第3张图片
修饰类:这个类就是太监类,可以有父类,没有子类。
修饰方法:这个方法就不能被覆盖重写

对于类和方法来说,abstract和final不能同时使用。因为abstract必须要子类去覆盖重写

修饰局部变量:变量就不能改变值了
修饰成员变量:用了final之后必须手动复制,系统不会再给默认值了。

8、权限

java 知识点 2(基础语法)_第4张图片

9、throws和throw

throws例

public static void main(String[] args){
	ExceptionDemo ed = new ExceptionDemo();
	try{
		ed.aa(100, 1);
	}catch(Exception e){
 		...
	}
} 
public void aa(int a,int b) throws Exception{
	...
}

throw例

public static void main(String[] args){
	ExceptionDemo ed = new ExceptionDemo();
	try{
		ed.aa(100, 1);
	}catch(Exception e){
 		...
	}
} 
public void aa(int a,int b) throws Exception{
	throw new Exception("throw可以手动抛出异常语句")
}

10、java数据持久化,Properties配置文件

读取配置文件

public String getValueByKey(String filePath, String key){
	Properties pps = new Properties();
	try{
		//BufferedInputStream对InputStream进行缓存区包装,达到性能优化
		InputStream in = new BufferedInputStream(new FileInputStream(filePath));
		
		//从字节输入流中读取键值对
		pps.load(in);
		
		//获取文件value
		String value = pps.getProperty(key);
		return value;
	} catch (IOException e){

		//在命令行打印异常信息在权程序中出错的位置及原因
		e.printStackTrace();
		return null;
	}
}

往配置文件写东西

public void w(String filePath, String key, String value) throws IOException{
	Properties pps = new Properties()

	//文件进入输入流
	InputStream i = new FileInputStream(filePath);
	//从输入流中读取
	pps.load(i);
	//把输出流n指向filePath
	OutputStream o = new FileOutputStream(filePath);
	//加载Properties表中的格式
	pps.setProperties(key, value);
	//将Properties表中的属性列表写入输出流
	pps.store(o, "Update "+ key);
}

调用上述方法

public static void main(String[] args) throws IOException{
	//获取jvm环境变量“user.dir”定义相对路径
	String path = System.getProperty("user.dir")+ "\\data\\";

	ProperReadWrite prw = new ProperReadWrite();
	
	//读取文件(key为63.name)
	String value = prw.getValueByKey(path + "Users.properties", "63.name")
	System.out.println(value);
	prw.getAllProperties(path + "Users.properties");
	
	//写入文件
	prw.writeProperties("Users.properties", "63.name", "chengdu");
}

11、java数据持久化,excel文件

下载jxl的jar包:https://www.onlinedown.net/soft/1163870.htm

在项目中新建lib文件夹,把包复制进去,然后’右击项目-properties-java Build Path-Libraries-Add jar-apply

读取excel

public static void readExcel(String fileName) {
		File file = new File(fileName);
		try {
			//输入流:对文件数据以字节的形式进行读取操作
			FileInputStream fis = new FileInputStream(file);
			//从字节流中读取xls文件(不能读xlsx)
			jxl.Workbook r = Workbook.getWorkbook(fis);
			//获取excel中所有工作表
			Sheet[] sheet = r.getSheets();
			for (int i=0; i<sheet.length; i++) {
				Sheet s = r.getSheet(i);
				//遍历当前工作表中的行
				for(int j=0; j<s.getRows(); j++) {
					Cell[] cells = s.getRow(j);
					//遍历列
					for(int k=0; k<cells.length; k++) {
						System.out.print(cells[k].getContents());
						System.out.print("\t");
					}
					System.out.println();
				}
			}
			fis.close();
		}catch(Exception e) {
			//打印异常信息在程序中出错的位置及原因
			e.printStackTrace();
		}
		
	}

调用读取

public class a01 {
	public static void main(String[] args){
		String path = System.getProperty("user.dir");
		readExcel(path +"\\data\\Students.xls");
	}

写入excel

	public static void writeExcel() {
		WritableWorkbook book = null;
		String info[] = {"序号","学号","姓名"};
		try {
			//创建excel表格
			String fileName = System.getProperty("user.dir")+"\\data\\NewStudent.xls";
			book = Workbook.createWorkbook(new File(fileName));
			//创建工作表
			WritableSheet sheet = book.createSheet("NewStudents.xls", 0);
			//添加表头
			for(int j=0; j<7; j++) {
				Label label = new Label(j, 0 , info[j]);
				sheet.addCell(label);
			}
		
			//添加数据
			sheet.addCell(new Label(0, 1, "1"));
			sheet.addCell(new Label(1, 1, "20001"));
			sheet.addCell(new Label(2, 1, "法海"));
			
			//写入并关闭
			book.write();
			book.close();
		}catch (Exception e) {
			e.printStackTrace();
		}
	}

修改excel

	private static void modifyExcel(){
		try {
			String fileName = System.getProperty("user.dir")+"\\data\\Students.xls";
			//获得文件
			Workbook wb = Workbook.getWorkbook(new File(fileName));
			//打开一个副本文件,并指定数据写回到原文件
			WritableWorkbook book = Workbook.createWorkbook(new File(fileName), wb);
			//打开目标工作表
			WritableSheet sheet = book.getSheet(0);
			sheet.addCell(new Label(0, 1, "100"));
			//关闭
			book.write();
			book.close();
		}catch(Exception e) {e.printStackTrace();}
	}

12、StringTokenizer对字符串分析

import java.util.StringTokenizer;

public class d02 {
	public static void main(String[] args) {
		String s = "[2020][06][01][18][03]";
		// 第一个参数是要分隔的s,第二个参数是分隔字符集合
		StringTokenizer st = new StringTokenizer(s, "[]");
		// hasMoreTokens返回是否还有分隔符
		while(st.hasMoreTokens()) {
			// 插入每个字符中间的空格
			System.out.print(st.nextToken()+" ");
		}
		
	}
}

13、Timer计时器

2秒后执行打印

import java.util.Timer;
import java.util.TimerTask;

public class d03 {
	//2000毫秒后执行打印
	public static void main(String[] args) {
		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			@Override
			public void run(){
				System.out.print("2秒后执行了");
			}
		}, 2000);
	}
}

你可能感兴趣的:(java)