`
文章列表

内部类

内部类 内部类对外部的类有一张特殊的通行证,能够自由存取它的内容,就算是私有的内容也一样,吧外部的方法或变量当做是自己的。 class MyOuter{ private int x; MyInner inner = new MyInner();//创建内部的实例 public void doStuff() { inner.go(); } class MyInner{ void go() { x = 42; } } } //从外部类以外的程序代码来初 ...

6.24

明天就3个月了,当才妮妮说明天啊明天啊哈哈,我说咋了。。她就来了个刀子。。 额。。哈哈,明天3个月了,好快,过的很幸福

集合与泛型

ArrayList TreeSet 以有序状态保持并可防止重复 HashMap 可用成对的key/value来保存与取出 LinkedList 针对经常插入或删除中间元素所设计的高效率集合(实际上ArrayList还是比较实用) HashSet 防止重复的集合,可快速地找寻相符的元素 L ...

PrintWriter

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

super和this的异同: 1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)  2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句) 3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名    super.成员函数据名(实参) 4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名) 5)调用super(参数)必须写在 ...
Global site tag (gtag.js) - Google Analytics