JAVA笔记239Word格式.docx

上传人:b****6 文档编号:20696864 上传时间:2023-01-25 格式:DOCX 页数:66 大小:1.01MB
下载 相关 举报
JAVA笔记239Word格式.docx_第1页
第1页 / 共66页
JAVA笔记239Word格式.docx_第2页
第2页 / 共66页
JAVA笔记239Word格式.docx_第3页
第3页 / 共66页
JAVA笔记239Word格式.docx_第4页
第4页 / 共66页
JAVA笔记239Word格式.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

JAVA笔记239Word格式.docx

《JAVA笔记239Word格式.docx》由会员分享,可在线阅读,更多相关《JAVA笔记239Word格式.docx(66页珍藏版)》请在冰豆网上搜索。

JAVA笔记239Word格式.docx

C:

\Users\ADMINI~1\AppData\Local\Temp\

想要让虚拟机启动时动态加载属性信息?

启动虚拟机用java命令,首先显示该命令的相关参数,在cmd中输入java>

c:

\2.txt,会将参数信息存入c:

\2.txt文件中如下图(部分)

从上图中可以看出-D<

name>

=<

value>

setasystemproperty设置一条属性信息。

/*System:

类中的方法和属性都是静态的。

上机演示程序一******************************

out:

标准输出,默认是控制台。

in:

标准输入,默认是键盘。

描述系统一些信息。

获取系统属性信息:

PropertiesgetProperties();

//虚拟机在启动时所加载的默认的属性信息。

*/

importjava.util.*;

classSystemDemo

{publicstaticvoidmain(String[]args)

{Propertiesprop=System.getProperties();

//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。

//那么可以通过map的方法取出该集合中的元素。

//该集合中存储都是字符串。

没有泛型定义。

//如何在系统中自定义一些特有信息呢?

System.setProperty("

mykey"

"

myvalue"

);

//获取指定属性信息。

Stringvalue=System.getProperty("

os.name"

System.out.println("

value="

+value);

//可不可以在jvm启动时,动态加载一些属性信息呢?

Stringv=System.getProperty("

haha"

//如果在cmd中输入:

javaSystemDemo回车,显示v=null

java–Dhaha=qqqqqSystemDemo回车,显示qqqqq,因为动态设定。

(java-D<

//setasystemproperty

v="

+v);

/*//获取所有属性信息。

for(Objectobj:

prop.keySet())

{Stringvalue=(String)prop.get(obj);

System.out.println(obj+"

:

"

}*/

}

}******************************************************************************

/*Runtime对象。

该类并没有提供构造函数。

说明不可以new对象。

那么会直接想到该类中的方法都是静态的。

发现该类中还有非静态方法。

说明该类肯定会提供了方法获取本类对象。

而且该方法是静态的,并返回值类型是本类类型。

由这个特点可以看出该类使用了单例设计模式完成。

该方式是staticRuntimegetRuntime();

classRuntimeDemo上机演示程序二**********************************************

{publicstaticvoidmain(String[]args)throwsException

{Runtimer=Runtime.getRuntime();

Processp=r.exec("

winmine.exe"

//启动扫雷游戏

notepad.exeSystemDemo.java"

//启动记事本后,并在记事本中将“SystemDemo.java”文件打开。

//Thread.sleep(4000);

//让进程运行4秒钟

//p.destroy();

//杀掉进程

 

importjava.text.*;

//因为日期最终格式化后变成文本,所以要导入文本包。

classDateDemo上机演示程序三***************************************************

{Dated=newDate();

System.out.println(d);

//打印的时间看不懂,希望有些格式。

//将模式封装到SimpleDateformat对象中。

SimpleDateFormatsdf=newSimpleDateFormat("

yyyy年MM月dd日Ehh:

mm:

ss"

//调用format方法让模式格式化指定Date对象。

Stringtime=sdf.format(d);

time="

+time);

longl=System.currentTimeMillis();

Dated1=newDate(l);

d1:

+d1);

上机演示程序四***********************************

classCalendarDemo

{Calendarc=Calendar.getInstance();

String[]mons={"

一月"

二月"

三月"

四月"

"

五月"

六月"

七月"

八月"

九月"

十月"

十一月"

十二月"

};

String[]weeks={

"

星期日"

星期一"

星期二"

星期三"

星期四"

星期五"

星期六"

};

intindex=c.get(Calendar.MONTH);

intindex1=c.get(Calendar.DAY_OF_WEEK);

sop(c.get(Calendar.YEAR)+"

年"

//sop((c.get(Calendar.MONTH)+1)+"

月"

sop(mons[index]);

sop(c.get(Calendar.DAY_OF_MONTH)+"

日"

//sop("

星期"

+c.get(Calendar.DAY_OF_WEEK));

sop(weeks[index1]);

/*Dated=newDate();

yyyy"

Stringyear=sdf.format(d);

//获得一个日期的年份,但是返回的是字符串,如果变成数字处理

//可以调用Integer.parseInt(d)但是比较麻烦,可找Calendar类帮助实现。

System.out.println(year);

publicstaticvoidsop(Objectobj)

{

System.out.println(obj);

两个练习:

1,获取任意年的二月有多少天。

思路:

根据指定年设置一个时间就是

c.set(year,2,1)//某一年的3月1日。

c.add(Calenar.DAY_OF_MONTH,-1);

//3月1日,往前推一天,就是2月最后一天。

2,获取昨天的现在这个时刻。

classCalendarDemo2上机演示程序五*********************************************

//c.set(2012,2,23);

//设置日期

c.add(Calendar.DAY_OF_MONTH,-18);

//时间向前或者向后推迟。

c.add(Calendar.YEAR,4);

printCalendar(c);

publicstaticvoidprintCalendar(Calendarc)

{String[]mons={"

};

{System.out.println(obj);

}

/*练习。

给定一个小数。

保留该小数的后两位。

选作。

可以考虑,保留时进行四舍五入。

上机演示程序五*************************************************

classMathDemo

{/*Randomr=newRandom();

for(intx=0;

x<

10;

x++)

{//intd=(int)(Math.random()*10+1);

intd=r.nextInt(10)+1;

sop(d);

saveTwo(12.3456,3,true);

//12.34

publicstaticvoidsaveTwo(doubled,intscale,booleanisRound)

{doublebase=Math.pow(10,scale);

doublenum=isRound?

Math.round(d*base)/base:

((int)(d*base))/base;

sop("

num="

+num);

/*doubled1=d*100;

d1="

d1=d1+0.5;

doubled2=(int)d1;

d2="

+d2);

doubled3=d2/100;

d3="

+d3);

publicstaticvoidshow()

{doubled=Math.ceil(16.34);

//ceil返回大于指定数据的最小整数。

doubled1=Math.floor(12.34);

//floor返回小于指定数据的最大整数。

longl=Math.round(12.54);

//四舍五入

d="

+d);

sop("

l="

+l);

doubled2=Math.pow(2,3);

IO技术************************************************************************

/*字符流和字节流:

字节流两个基类:

InputStreamOutputStream

字符流两个基类:

ReaderWriter

先学习一下字符流的特点。

IO流是用于操作数据的,数据的最常见体现形式是:

文件。

先以操作文件为主来演示。

需求:

在硬盘上,创建一个文件并写入一些文字数据。

找到一个专门用于操作文件的Writer子类对象。

FileWriter。

后缀名是父类名。

前缀名是该流对象的功能。

classFileWriterDemo上机演示程序六*********************************************

{publicstaticvoidmain(String[]args)throwsIOException//因为NewFileWriter()所给出的绝对路径可能不存在如"

K:

\\demo.txt"

所以就可能抛出IOException异常

{//创建一个FileWriter对象。

该对象一被初始化就必须要明确被操作的文件。

//而且该文件会被创建到指定目录下。

如果该目录下已有同名文件,将被覆盖。

//其实该步就是在明确数据要存放的目的地。

FileWriterfw=newFileWriter("

demo.txt"

//调用write方法,将字符串写入到流中。

此时打开deom文件发现为空。

fw.write("

abcde"

//刷新流对象中的缓冲中的数据。

将数据刷到目的地中。

//fw.flush();

//关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。

//将数据刷到目的地中。

//和flush区别:

flush刷新后,流可以继续使用,close刷新后,会将流关闭。

fw.close();

/*IO异常的处理方式。

classFileWriterDemo2上机演示程序七********************************************

{FileWriterfw=null;

//在try外面建立引用,try内部初始化

try

{//FileWriterfw=newFileWriter("

编译失败,因为在try代码块中定义的fw,在finally代码块中无法访问。

fw=newFileWriter("

fw.write("

abcdefg"

catch(IOExceptione)

{System.out.println("

catch:

+e.toString());

finally

{

//fw.close();

编译失败,因为三句话都会引发IOException,但是只针对性处理了两句,所以必须对fw.close()也做出相应的处理方式

try

{

if(fw!

=null)

fw.close();

//直接写:

fw.close();

//如果在FileWriterfw=newFileWriter("

k:

编译通过,但运行时报两个异常(一、FileNotFoundException(系统找不到制定路径)二、NullPointerException(空指针异常,因为对象没有建立成功,fw=null;

))空的变量名时不能调用方法的

}

catch(IOExceptione)

System.out.println(e.toString());

}}}}******************************************************

/*演示对已有文件的数据续写。

*/上机演示程序八************************************

classFileWriterDemo3

{publicstaticvoidmain(String[]args)throwsIOException

{//传递一个true参数,代表不覆盖已有的文件。

并在已有文件的末尾处进行数据续写。

FileWriterfw=newFileWriter("

true);

nihao\r\nxiexie"

//\n和\r\n的区别

classFileReaderDemo上机演示程序九(文本文件读取方式一)*************************

{//创建一个文件读取流对象,和指定名称的文件相关联。

//要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException

FileReaderfr=newFileReader("

//调用读取流对象的read方法。

//read():

一次读一个字符。

而且会自动往下读。

/*intch1=fr.read();

ch1="

+(char)ch1);

intch2=fr.read();

ch2="

+(char)ch2);

intch3=fr.read();

ch3="

+(char)ch3);

intch4=fr.read();

ch4="

+ch4);

//加入已知文件中只有三个字符,但是读了四个,此时ch4的值为-1,返回-1;

//-1说明已经到达流的末尾,这样就有了循环条件*/

intch=0;

while((ch=fr.read())!

=-1)

ch="

+(char)ch);

/*while(true)

{intch=fr.read();

if(ch==-1)

break;

System.out.println("

fr.close();

第二种方式:

通过字符数组进行读取。

上机演示程序十*******************************

classFileReaderDemo2

{FileReaderfr=newFileReader("

//定义一个字符数组。

用于存储读到字符。

//该read(char[])返回的是读到字符个数。

假设文件中共10个字符

/*char[]buf=newchar[3];

intnum=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1