java学习日记 day2

  • 前言
    今天沉迷于王者,排位五连败,差点没写,今日事今日毕,开始总结
    今天开始是半天学html,半天学java,HTML的话就挑一些重点写写博客吧

  • 类型转换
    今天学习的主要内容就是各个类型的转换

  • numberformat
    这部分主要讲的是对number类型进行数据转换,如限制格式等

public class NumberFormatCase {
	static NumberFormat nf1=NumberFormat.getInstance();//三个一组
	static NumberFormat nf2=NumberFormat.getPercentInstance();//百分比,但是不能得到小数点后的内容
	static NumberFormat nf3=NumberFormat.getCurrencyInstance();//货币的格式,默认人民币
	static NumberFormat nf4=NumberFormat.getCurrencyInstance(Locale.US);//通过locale.国家可以输出该国的符号
	
	public static void main(String args[]){
		double d=546446.123;
		double d2=0.856;
		System.out.println(d);
		System.out.println(nf1.format(d));
		System.out.println(nf2.format(d2));
		System.out.println(nf3.format(d));
		System.out.println(nf4.format(d));
	}
}

用numberformat这个对象进行定义,并引用其中的函数,可以对数字类新型进行处理。
不过这样也有一些问题,比如NumberFormat.getCurrencyInstance();它只能把小数点后两位转换成百分比,即87%这样,这样很死板,所以引入了新的数据转换格式

  • DecimalFormate
    DecimalFormate可以自由的确定数字的格式
public class DecimalFormateCase {//decimalformate也可以转化数据格式
	static DecimalFormat df1=new DecimalFormat("000,000.0000");//定义格式,不存在时用0补全
	static DecimalFormat df2=new DecimalFormat("###,###.####");//定义格式,不存在时省略
	static DecimalFormat df3=new DecimalFormat("##.##%");
	
	public static void main(String[] args){
		double d=23113.1213;
		double d2=0.84552;
		System.out.println(df1.format(d));
		System.out.println(df2.format(d));
		System.out.println(df3.format(d2));
	}
}

其中比较值得注意的就是用0和#的差别,可以应对多种情况

  • Date
    对date的学习
public class Datecase {
	//使用不同的格式输出日期
	static DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	static DateFormat df2=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
	static DateFormat df3=new SimpleDateFormat("yyyy年/MM月/dd日 hh:mm:ss");
	public static void main(String[] args) throws Exception{
		Date d1=new Date();
		System.out.println(d1);
		System.out.println(df.format(d1));
		System.out.println(df2.format(d1));
		System.out.println(df3.format(d1));
		String birth="1999-09-03 00:00:00";
		Date d2=df.parse(birth);//将字符串转换成日期对象
		int age=d1.getYear()-d2.getYear();//calendar,日历类,替代date类完成日期操作
		System.out.println(age);
	}
}
  • 数组
    对数组的学习
public class StudyArray {
	public static void main(String args[]){
		//两种定义方法
		float[] grade={98,51,65.2f,47.4f,89};
		int[] a=new int[10];
		Arrays.sort(grade);
		for (int i:a) {
			System.out.print(i);
		}
		for(int i=0;i
  • 集合框架
    数组由于其天然的不可变性,有的时候使用起来很不方便,而且会造成资源浪费,这时候就引入集合框架进行处理
/*
 * 按照功能分类多种多样:
 * list、set、map。实训项目中只需要list
 * list接口有多个典型的实现类
 * 底层使用顺序表实现的ArrayList
 * 底层使用链表实现的LinkedList
 * 线程安全的List--Vect
 */
public class StudyCollection {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List list=new ArrayList<>(15);//创建了一个list对象
		//添加数据
		/*
		 * 数据串的长度是四,容量是15
		 * 它到底容量是可扩充的
		 */
		list.add(45);
		list.add(80);
		list.add(1200);
		list.add(54);
		list.add(49);
		list.add(0,97);//可以选择加入的位置 
		for (int i : list) {
			System.out.println(i);
		}
		System.out.println(list.size());
		System.out.println("-----------------------------");
		//删除数据
		list.remove(5);//删除指定位置
		
		for (int i : list) {
			System.out.println(i);
		}
		System.out.println(list.size());
		System.out.println("-----------------------------");
		list.remove(new Integer(97));
		for (int i : list) {
			System.out.println(i);
		}
		System.out.println(list.size());
		System.out.println("-----------------------------");
		//修改数据
		list.set(1, new Integer(18));
		for (int i : list) {
			System.out.println(i);
		}
		System.out.println(list.size());
		System.out.println("-----------------------------");
		//查找数据
		System.out.println(list.get(3));//找到那个位置的数据
		System.out.println(list.indexOf(1200));//返回位置,若不在,返回-1
		

	}

  • 文件
public class ReaderCase {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		File file=new File("info.txt");
		FileReader reader=new FileReader(file);
		BufferedReader bReader=new BufferedReader(reader);//再套一层缓冲区
		String temp=null;
		int i=1;
		while((temp=bReader.readLine())!=null){//把是否为空作为循环的标志
			System.out.println("第"+i+"行");
			System.out.println(temp);
			i++;
		}
		//在结束后关闭io流是一个安全的操作
		bReader.close();
		reader.close();
	}

}

其中readline函数每读取一行都会自动进下一行
再套一层缓冲区的意义是更方便的读取,即应用更多的方法,因为filereader里面都是对字符数组进行的操作,对于读取文本文件时很不实用,所以引入缓冲区其中的函数对读取文件更加简便。

  • 总结
    java的核心是对象,对于对象的应用是重中之重,不过其中某个对象的函数中的妙用恐怕只有经验才能累积,不亲自用到很难理解它到底是怎么用的,java封装了很多实用的函数,虽然效率不一定高,但是在大型的开发项目中自己编写函数显然很难,这也是为什么java开发这么火的原因吧,应用好这些函数是要时间来累积的。

你可能感兴趣的:(学习总结,java,菜鸟学习)