java语言学习
Savrina96
这个作者很懒,什么都没留下…
展开
-
总结重写override和重载overload区别
重写方法的规则如下:参数列表:必须与被重写方法的参数列表完全匹配。 返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同 访问级别:一定不能比被重写方法强,可以比被重写方法的弱。 非检查异常:重写方法可以抛出任何非检查的异常,无论被重写方法是否声明了该异常。 检查异常:重写方法一定不能抛出新的检查异常,或比被重写方法声明的检查异常更广的检查异常 不能重写标志为final,s转载 2015-04-22 11:27:19 · 415 阅读 · 0 评论 -
通过键盘录入数据,over停止录入
/* * 通过键盘录入数据: * 当录入一行数据后,将该数据进行打印,如果录入数据是over,那么停止录入 */import java.io.*;public class Readin { public static void main(String[] args) throws IOException { // TODO Auto-generated method s原创 2015-05-30 12:49:37 · 545 阅读 · 0 评论 -
Java机制和面向对象开发方法
Java程序运行机制 Java程序的执行必须经过先编译、后执行两个步骤。他既具有编译型语言的特征,又具有解释型语言的特征。所以他既不是纯粹的编译型语言,例如C/C++,也不是纯粹的解释性语言,例如Python、JavaScript等。 编译型语言和解释型语言都是将源码翻译为机器可以识别的机器语言。编译和解释都是“翻译”,不同的是:编译是在程序执行之前,将程序编译成机器可识别的机器语言,以后每次执转载 2015-05-23 18:27:48 · 576 阅读 · 0 评论 -
创建图形化界面
1.创建Frame窗体 2.对窗体进行基本设置:比如大小,位置,布局 3.定义组件 4.将组件通过窗体的add方法添加到窗体中 5.让窗体显示,通过setVisible()import java.awt.*;public class AwtDemo { public static void main(String[] args) { // TODO Auto-gen原创 2015-06-04 16:45:31 · 437 阅读 · 0 评论 -
GUI菜单练习
import java.awt.*;import java.awt.event.*;public class MyMenuDemo { private Frame f; private MenuBar mb; private Menu m,subMenu; private MenuItem closeItem,subItem; public MyMenuDem原创 2015-06-08 15:39:53 · 413 阅读 · 0 评论 -
GUI练习:列出指定目录内容
输入目录路径,点击转到按钮或者键盘回车键,可列出所有目录路径之下的文件名,若目录输入错误,则弹出信息提示对话框,单击确定键对话框关闭。import java.awt.*;import java.awt.event.*;import java.io.*;public class MyWindowDemo { private Frame f; private TextField tf;原创 2015-06-05 17:46:17 · 319 阅读 · 0 评论 -
java构造器小结
当创建一个个对象时,系统会该对象的属性默认初始化,基本类型属性的值为0(数值类型),false(布尔类型),把所有的引用类型设置为null. 构造器可以改变这种默认的初始化。 构造器的作用:是创建java对象的重要途径,是不是说构造器完全负责创建java对象????? 答:是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确转载 2015-06-30 22:51:20 · 415 阅读 · 0 评论 -
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
GUI练习:文件的打开保存import java.awt.*;import java.awt.event.*;import java.io.*;public class MyMenuDemo { private Frame f; private MenuBar mb; private TextArea ta; private Menu m; private原创 2015-06-11 21:45:50 · 17672 阅读 · 1 评论 -
Java中equals和==的区别
java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则转载 2015-07-03 12:10:44 · 292 阅读 · 0 评论 -
Java中的equals()
经过几天的学习,终于对equals的用法有了比较全面的认识,并做一个总结。1.equals的本意——即在Object对象中定义的equals()方法有什么样的意义。(此处先附上==的作用,后面仍有叙述。因为==和equals()方法的关系是很密切的,后面有我自己的看法。==用于比较引用和比较基本数据类型时具有不同的功能: 比较基本数据类型,如果两个值相同,则结果为true 而在比较引用时,如果引转载 2015-07-03 12:12:28 · 328 阅读 · 0 评论 -
关于hashCode方法的作用
有许多人学了很长时间的Java,但一直不明白hashCode方法的作用, 我来解释一下吧。首先,想要明白hashCode的作用,你必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:转载 2015-07-03 12:29:47 · 256 阅读 · 0 评论 -
利用“异或”处理数组的相关算法的几个例子
例1,寻找数组中丢失的数。。。 有一组数字,从1到n减少了一个数,顺序也被打乱了,放在一个n-1的数组里,请找出丢失的数字。 在上一篇“数组公式相关算法”里介绍过一些解法,不过,那样解的话,可能会有溢出的危险。我们可以利用位运算中的“异或” 来巧妙解决这个问题。 算法步骤:1,对1-n个数做异或运算,得到XOR = 1^2^3^4….^转载 2015-07-06 22:57:42 · 4435 阅读 · 0 评论 -
char与byte的区别
很多初学者(包括我,已经学了一年多java了)肯会对char和byte这两种数据类型有所疑惑,相互混淆,今天特地查了好多资料,对byte和char两种数据类型进行了总结和比较,先将结果与大家分享: byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char转载 2015-07-17 21:44:28 · 448 阅读 · 0 评论 -
用 new 关键字对一个String 变量赋值和用literal值直接赋值有什么不同
String str1=”ABC”; 和String str2 = new String(“ABC”); 有什么区别。String str1=”ABC” 可能创建一个对象或者不创建对象,如果”ABC”这个字符串在java String池里不存在,会在java String池创建这个一个String对象(“ABC”).如果已经存在,str1直接reference to 这个String池里的对象。St转载 2015-05-28 17:14:54 · 519 阅读 · 0 评论 -
java线程间通信:生产者--消费者
单个生产者消费者问题:定义if判断标记,定义notify(); 对于多个生产者消费者问题,则要定义while判断标记,因为为了让被唤醒的线程再一次判断标记; 对于多个生产者消费者问题,要定义notifyAll(),因为需要唤醒对方线程,只用notify()容易出现只唤醒本方线程的情况,导致程序中所有线程都等待。 生产者消费者问题程序如下:class Resource{ private原创 2015-05-21 22:45:09 · 347 阅读 · 0 评论 -
TreeMap获取字符串中字母出现次数
需求:”ahg,,djks..bvagav?vftk”获取该字符串中字母出现的次数 希望打印结果:a(3)b(1)d(1)f(1)g(2)h(1)j(1)k(2)s(1)t(1)v(3)通过打印结果发现每一个字母都有对应的次数,说明了字母和次数之间有映射关系。所以可以选择map集合,因为map集合中的存放就是映射关系。思路:将字符串转换成字符数组。因为要对每个字母进行操作。char[] chs原创 2015-04-22 23:11:02 · 421 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-04-20 11:43:31 · 215 阅读 · 0 评论 -
java Collections Framework
一、在java collections freamwork中,ArrayList是最常用的,但还是会有特殊情况,下面列出几个较为重要的: 1.TreeSet 以有序状态保持并可以防止重复。 2.HashMap 可用成对的name/value来保存取出。 3.LinkedList 针对经常插入和删除中间元素所设计的高效率集合。 4.Hash原创 2015-04-20 12:04:50 · 349 阅读 · 0 评论 -
Java中的集合类解析和一些有深入的面试题
Java集合类解析List、Map、Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。Hashtable和HashMap的区别: 1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类; 2.Hashtable中的方法是同步的,转载 2015-04-20 23:17:39 · 354 阅读 · 0 评论 -
使用LinkedList模拟一个堆栈或者队列数据结构
LinkedList特有方法:addFirst();addLast();getFirst();getLast();获取元素但不删除元素。如果集合中没有元素会会出现NoSuchElementException. (JDK 1.6 出现替代方法offerFirst(),offLast();peekFirst(),peekLast()。集合中没有元素会返回Null)removeFirst();re原创 2015-04-20 22:55:46 · 2814 阅读 · 0 评论 -
Comparable与Comparator的区别
Comparable与Comparator的区别Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.u转载 2015-04-21 17:19:24 · 330 阅读 · 0 评论 -
Map容器小程序,学生作为key,地址作为value,采用keySet和entrySet两种取出方式
每一个学生都有对应的归属地学生Student,地址String学生属性:姓名,年龄注意:姓名和年龄相同视为同一个学生保证学生的唯一性 1.描述学生2.定义Map容器。将学生作为键,地址作为值。存入3.获取Map集合中元素。import java.util.*;class Student implements Comparable<Student>{ private Str原创 2015-04-21 18:10:46 · 664 阅读 · 0 评论 -
读取一个.java文件并打印在控制台上
import java.io.*;public class FileReaderTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub FileReader fr=new FileReader("Hello原创 2015-04-28 18:05:45 · 821 阅读 · 0 评论 -
通过缓存区复制一个.java文件
import java.io.*;public class CopyTextByBuf { public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader bufr=null; BufferedWriter bufw=null;原创 2015-05-26 23:08:22 · 537 阅读 · 0 评论 -
readLine原理及自定义一个类中包含一个和readLine一致的方法功能来模拟BufferedReader
BufferedReader类中特有方法readLine原理: 无论是读一行,还是获取多个字符,其实最终都是在硬盘上一个一个读取,所以最终使用的还是read方法一次读一个的方法。下面自定义一个类中包含一个功能和readLine一致的方法来模拟一下BufferedReader。 读取buf.txt这个文件: 代码如下:class MyBufReader{ private FileRea原创 2015-05-27 17:55:40 · 920 阅读 · 0 评论 -
多线程间通信示例及IllegalMonitorStateException异常
IllegalMonitorStateException异常发生是由于程序员没有注意notify(),notify(),wait()方法的使用条件,没有真正理解线程同步机制。如果当前的线程不是此对象锁的所有者,却调用该对象的notify(),notify(),wait()方法时抛出该异常。 LZ在操作线程间通信示例时,代码优化之后忘记加锁,出现以下异常: Exception in thread原创 2015-05-21 16:38:55 · 326 阅读 · 0 评论 -
wait(),notify(),notifyAll()用来操作线程为什么定义在Object类中?wait(),sleep()区别?
wait(),notify(),notifyAll()用来操作线程为什么定义在Object类中?这些方法存在于同步中;使用这些方法必须标识同步所属的锁;锁可以是任意对象,所以任意对象调用方法一定定义在Object类中。wait(),sleep()区别?wait():释放资源,释放锁sleep():释放资源,不释放锁原创 2015-05-21 16:49:32 · 2010 阅读 · 0 评论 -
BigDecimal 的舍入模式
eg: BigDecimal x1b = new BigDecimal(54D); BigDecimal x2b = new BigDecimal(20D); double x = ((x1b.add(x2b)).divide(new BigDecimal(“2”),6,RoundingMode.HALF_UP)).doubleValue(); 即:商=被除数.devide(除数,保留小数位转载 2015-09-24 16:25:40 · 402 阅读 · 0 评论