- 浏览: 26591 次
- 性别:
- 来自: 北京
最新评论
文章列表
内部类
内部类对外部的类有一张特殊的通行证,能够自由存取它的内容,就算是私有的内容也一样,吧外部的方法或变量当做是自己的。
class MyOuter{
private int x;
MyInner inner = new MyInner();//创建内部的实例
public void doStuff()
{
inner.go();
}
class MyInner{
void go()
{
x = 42;
}
}
}
//从外部类以外的程序代码来初 ...
明天就3个月了,当才妮妮说明天啊明天啊哈哈,我说咋了。。她就来了个刀子。。
额。。哈哈,明天3个月了,好快,过的很幸福
ArrayList
TreeSet
以有序状态保持并可防止重复
HashMap
可用成对的key/value来保存与取出
LinkedList
针对经常插入或删除中间元素所设计的高效率集合(实际上ArrayList还是比较实用)
HashSet
防止重复的集合,可快速地找寻相符的元素
L ...
PrintWriter
- 博客分类:
- Java 语言
PrintWriter可能比BufferedWriter更高级,它有含有OutputStream、File、Writer的构造方法。BufferedWriter只接受writer。
而且PrintWriter还有格式化输出方法println(),能输出各个平台都接受的换行符。
常见的TCP端口号
FTP 20
Telnet 23
SMTP 25
Time 37
HTTP 80
HTTPS 443
//一般用下面的方法启动新线程,而不是继承Thread类(当然这也是合法的)
public static void main(String[] args){
Runnable mt = new MyThread();//MyThread的对象引用也行
Thread th ...
1 File类
File 类封装了对用户机器的文件系统进行操作的功能。例如,可以用 File 类获得文件上次修改的时间移动,或者对文件进行删除、重命名。换句话说,流类关注的是文件内容,而File 类关注的是文件在磁盘上的存储。
File 类的主要方法有: getName(),getCanonicalFile(),lastModified(),isDerector(),isFile(),getPath()等;
File 类与 FileInputStream 类的区别:
流类关注的是文件内容,而 File 类关注的是文件在磁盘上的存储。
2 FileInputStream 类
FileInp ...
//序列化
FileOutputStream fileStream = new FileOutputStream("MyGame.ser");
ObjectOutputStream os = new ObjectOutputStream(fileStream);
os.writeObject(characterOne);//将变量所引用的对象序列化并写入MyGame.ser这个文件,且characterOne所属的类必须继承Serializable接口(此接口没有方法需要实现,标记用接口)
os.writeObject(characterTwo);//另一个对象
o ...
编译器不会注意RuntimeException类型的异常。以为这些异常都是程序逻辑问题,完全可以避免的。
真正的异常是例如服务器死机了,文件不在了之类的无法预测的异常。
try中语句抛出异常后,则直接运行catch块,try中后面的语句不会执行了。
就算try和catch中有return指令,final还是会执行,执行后再回到return指令
多个catch时 要从小到大排,比如Exception要最后一个,否者报错,因为小的在大的后面的话,根本执行不到。
如果一直duck(往上抛),那么java虚拟机只能死给你看
HashMap<String,Integer> hm = new HashMap <String,Integer>;
hm.put("haha",1);
hm.put(1,2);//报错,因为类型不符
hm.get("haha");
hm.get(1);//没问题,因为它没更改数据,只是读取
由此可见,泛型在读取数据时可能不起作用,只是在写入和更新数据时才会限制类型
BufferedReader reader = new BufferedReader(new FileReader(fileName));
int ch = 0;//char就不行,因为文件尾时API返回-1,而char应该不认识-1,ch中可以存汉字
while((ch = reader.read()) != -1)
{
function((char)ch);//需要时char时需要强制转换,因为int大
}
输入:汉字、字母、数字、符号混杂的txt文件
输出:只含有数字编码的LinkedList
汉字通过自己定义的一个常用汉字(2500个)映射表来进行替换
字母、数字、符号直接用它们的ASCII码来替换
空格去掉
无法识别的字符和汉字可以直接舍弃
所以,程序运行后,需要先生成一个2500大小的HashMap
基于字符串匹配的相似性排重
除去上下两个接口,剩下的部分大体分为四块:
预处理、生成散列值、提取特征值、相似度计算
一 预处理
输入:带有汉字、字母、数字、符号等的txt文件
输出:只含有数字编码的LinkedList
二 生成散列值
输入:只含有数字编码的LinkedList
输出:只含有散列值的LinkedList
三 提取特征值
输入:只含有散列值的LinkedList
输出:只含有特征值的LinkedList
四 相似度计算
输入:只含有特征值的LinkedList;已存文章的特征值
输出:相似度
静态方法不能调用非静态的变量(方法内定义的变量当然可以用,这里指“调用”,肯定是方法外的非静态变量,方法内实例化对象,并用其实例变量可以)
静态方法也不能调用非静态的方法(方法内实例化对象,并调用方法可以)
静态变量会在该类的任何静态方法执行之前就初始化
静态的final变量是常数 public static final
final的变量代表你不能改变它的值
final的方法代表你不能覆盖掉该方法
final的类代表你不能继承该类
primitive主数据类型的包装
Boolean
Character
Byte
Short
Integer
Long
Float
Double
Stri ...
对象(包括实例变量)的生存空间:堆
方法调用及变量(局部变量)的生存空间:栈
若实例变量是primitive主数据类型,堆上会留下相应的空间,如果是对象,存的是引用变量,当然也在堆上。
java的类定义完了之后在哪里呢.当然在一般的存储介质上啦.就是硬盘上.在没有被相关代码加载之前它一直就在那里待着.只有new的时候才会分配内存
构造函数不会被继承
当你有一个有参的构造函数时,编译器不会帮你写无参的!
构造函数没有返回类型
三种方法可以释放对象的引用:
1 引用永久性的离开它的范围
void go()
{
Life z = new Life();//z会在方法结束时消失 ...
super和this
- 博客分类:
- Java 语言
super和this的异同:
1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
5)调用super(参数)必须写在 ...