Java 自学笔记 Oct-27(2)

来源:互联网 发布:数据库管理员和程序员 编辑:程序博客网 时间:2024/04/19 15:27

======================================================
注:本文源代码点此下载
======================================================

1.如果希望scanner对文件进行读取,需要先建立一个file对象(import java.io.file),然后用如下的方式调用:

scanner cin = new scanner(new file("input.txt"));

而不要采用这样的方式:

scanner cin = new scanner("input.txt");

该方式实际上是把"input.txt"这个字符串读入了scanner。(类似于c++中的stringstream导入了一个字符串流)

如果路径为绝对路径,在出现"\"的地方应该替换为"\\"(转义字符),例如"c:\\windows",在linux目录下的无需替换,如"/home/rhoway/xx.java"

2.需要写入文件时调用printwriter,参数直接提供文件名即可。也可以使用其重载版本,参数使用file类型的变量。

使用时需import java.io.printwriter;

printwriter fout = new printwriter("output.txt");

使用后记得调用close函数,这很重要,否则该文件会因为被调用而无法查看到刚更改的内容。

3.在java中,嵌套的块中不可以再声明和外层同名的变量。(在c++中是可以的)

4.for循环的结束条件请尽可能避免和浮点数比较是否相等或者比较大小。(存在舍入的误差)

5.当在switch语句中使用枚举变量时,不必再指定枚举的类型名:

size sz = size.small;

switch(sz)

{

case small:

......;break;

而不用写"case size.small:"

(顺便一提,enum放在main方法中会给出类似于“枚举类型不能为本地类型”这样的提示以致不能编译)

6.附上一张biginteger和bigdecimal类型的表:

(读入可以用nextbiginteger/nextbigdecimal/next)

7.for的另一种用法:

for(类型名 元素名: 集合名)

//do something

该集合必须是数组或实现了iterable的类对象。

8.数组同样存在tostring方法:

array.tostring(数组名)可以将数组元素打印成类似于[1,2,3]这样的形式。

9.在java中可以创建匿名数组,也允许数组的长度为0,但数组长度为0和null不同。

10.数组的拷贝实际上是引用调用

int[] array2 = new int [] {2,3,4,5,6};

int[] array1 = array2;

array[1] = '0';

第三行中的修改也会影响array2中对应元素的值。

如果只需要值拷贝,而不是引用的话,请使用arrays.copyof(被拷贝的数组名,拷贝的元素个数);

如果被拷贝的元素个数少于被拷贝数组大小,则只拷贝前面几个元素。

反之,结果由类型决定:数值类型多余位补0,boolean类型补false。

注:也可以使用system.arraycopy方法,参数如下:

system.arraycopy(source,fromindex,destination,toindex,count);

source指原数组,destination指目标数组,from和to分别指从…下标开始拷贝以及拷贝到…下标。count指拷贝…个元素。用此方法时须保证destination数组足够大。

11.用math.random()可以产生0至1的随机浮点数,利用该值*n可以得到0到n-1的随机数。

12.使用arrays的操作时需import java.util.arrays;


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击