![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
指尖飞码
关注大数据开发、编程、算法
展开
-
JAVA:子类无法覆盖父类中的方法
class Super { public int get(){return 4;} } class Demo15 extends Super { public long get(){return 5;} public static void main (String[] args) { Super s = new Demo15();原创 2016-04-24 17:22:53 · 4478 阅读 · 1 评论 -
JAVA——包(package)及对jar包的操作
对类文件进行分类管理。 给类提供多层命名空间。 写在程序文件的第一行。 类名的全称的是 包名.类名。 包也是一种封装形式。总结: 包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。不同包中的子类还可以直接访问父类中被protected权限修饰的成员。 包与包之间可以使用的权限只有两种,public protected。 c:\myclassc:\myc原创 2016-04-24 21:53:24 · 11332 阅读 · 0 评论 -
JAVA——异常的总结
1、异常是什么? 回答:是对问题的描述。将问题进行对象的封装2、异常体系: Throwable |–Error |–Exception(RuntimeException是子类)异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。也就是说可以被throw和throws关键字所操作。只有异常体系具备这个特点。3、throw和throws的原创 2016-04-24 15:48:44 · 486 阅读 · 0 评论 -
Java中的length、length()、size的用法
length一般用来求数组的元素个数。 length()方法用来求字符串的长度。 size一般用来求list中元素的个数; 例如:class Array{ public static void main(String [] args) { String array[]={"First","Second","Third"}; String a =原创 2016-04-09 13:36:47 · 11053 阅读 · 0 评论 -
Java规范
对于初学者来说,编写代码时我们要先写注释再写代码 java中的名称规范: 包名:多单词组成时所有字母都小写 xxxyyyzzz 类名接口名:多单词组成时,所有单词的首字母大写 XxxYyyZzz 变量名和函数名:第一个单词首字母小写,第二个单词开始每个单词首字母大写 xxxYyyZzz 常量名:所有字母都大写。多单词时每个单词用下划线连接 XXX_YYY_ZZZ原创 2016-04-09 13:42:04 · 436 阅读 · 0 评论 -
Java开发中equals和==的区别
1.基本数据类型(int 、short、char、long、float、double、boolean)之间的比较,应该用==,比较的是它们的值;2.复合数据类型(类) 当用==进行比较的时候,其实比较的是它们在内存中的地址。因此除非是同一个new出来的对象,其比较过的结果才为true,否则比较后的结果为false。 Java当中所有的类都是继承自Object这个基类,在基类中定义了一个equal原创 2016-04-09 13:44:04 · 537 阅读 · 0 评论 -
Java中的s=s+5和s+=5的区别
比如说我们在编写Java程序的时候,有时候会发现定义一个short型的变量s, short s = 4; 然后s = s+5报错,而s+=5却没有问题,这是怎么回事呢。 因为5是整型数,占4个字节,而short占2个字节,当s+5的时候,s为short型会转为int型与5运算,可是结果却要赋给精度低的short型,会丢失精度。所以会报错,编译不通过但是s+=5这一运算不同,就是一次运算,只有一原创 2016-04-09 16:39:40 · 2877 阅读 · 0 评论 -
Java--什么时候用if什么时候用switch case呢?
虽然两者很想,但是在实际编程的时候,貌似大多数人都倾向于选择if else这种结构。1.如果判断的具体值不多,并且是byte、int、short、char类型的数值,建议使用switch case2.诸如区间判断、boolean类型判断,选用if else比较常见原创 2016-04-09 20:30:59 · 3426 阅读 · 0 评论 -
Java中的break和continue
Break break的作用:跳出当前循环块(for、while、do while)或程序块(switch)。 在循环块中的作用是跳出当前正在循环的循环体。 在程序块中的作用是中断和下一个case条件的比较。class BreakDemo{ public static void main(String args[]) { for(int i=0;i<3;i++原创 2016-04-09 22:01:11 · 519 阅读 · 0 评论 -
JAVA——普通代码块、构造代码块、静态代码块
执行顺序:(优先级从高到低。)静态代码块>main方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。class StaticBlock{ int num = 9; StaticBlock() { System.out.print("d "); } //静态代码块 static {原创 2016-04-16 18:55:12 · 541 阅读 · 0 评论 -
JAVA——多线程举例
同步函数用的是哪一个锁呢? 函数需要被对象调用。那么函数都有一个所属对象引用。就是this。所以同步函数使用的锁是this。下面通过程序进行验证。使用两个线程来买票。一个线程在同步代码块中。一个线程在同步函数中。都在执行买票动作。class Ticket implements Runnable{ private int ticket = 100; Object obj = ne原创 2016-04-26 20:25:59 · 448 阅读 · 0 评论 -
JAVA——多线程之单例模式
我在博客的设计模式一栏曾经介绍过单例模式。因为学到了多线程,下面就再回顾一下单例模式的两种方式: 1、饿汉式class Single{ private static final Single s = new Single(); private Single(){} public static Single getInstance() { return原创 2016-04-26 21:35:00 · 446 阅读 · 0 评论 -
JAVA——线程安全(synchronized)
卖票的程序我们在卖票的中间暂停一段时间。观察程序的运行结果。class Ticket implements Runnable{ private int ticket = 20; public void run() { while(true) { if(ticket>0) {原创 2016-04-26 10:29:27 · 436 阅读 · 0 评论 -
Java中的函数
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,) { 执行语句; return 返回值; }public static int getSomething(int str){ return str*2;}函数中只能调用函数,不能在函数内部定义函数;函数的重载(只和参数列表有关系) 在同一个类中,允许存在一个原创 2016-04-10 12:14:22 · 616 阅读 · 0 评论 -
JAVA——多线程(Runnable)
实现Runnable接口是创建线程的第二种方式;步骤: 1、定义类实现Runnable接口 2、覆盖Runnable接口中的run方法 将线程要运行的代码存放在该run方法中。 3、通过Thread类建立线程对象 4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。 为什么要将Runnable接口的子类对象传递给Thr原创 2016-04-26 09:42:35 · 759 阅读 · 0 评论 -
JAVA——多线程间通信(wait 和notify)
从语法角度来说: Obj.wait(),Obj.notify必须在synchronized(Obj){…}语句块内。 从功能上来说: wait就是说线程在获取对象锁后,主动释放对象锁,同时本线程休眠。直到有其它线程调用对象的notify()唤醒该线程,才能继续获取对象锁,并继续执行。 notify()就是对对象锁的唤醒操作。 注意 (1)notify()调用后,并不是马上就释放对象原创 2016-04-27 13:10:26 · 421 阅读 · 0 评论 -
JAVA——生产者与消费者以及JDK1.5以后新特性
生产者和消费者问题是很常见的一类多线程问题。问题大致描述为: 有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经放入产品的缓冲区中再次投放产原创 2016-04-27 18:18:55 · 969 阅读 · 0 评论 -
JAVA——多线程Thread
进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。 线程: 就是进程中的一个独立的控制单元。线程在控制着进程的执行。 一个进程中至少有一个线程。Java VM启动的时候会有一个进程java.exe 该进程中至少一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中。该线程称为主线程。扩展:其实更细节说明JVM,JVM启动原创 2016-04-25 21:30:05 · 4262 阅读 · 0 评论 -
JAVA——成员变量和局部变量的比较
作用范围:成员变量作用于整个类中,局部变量作用于函数中,或者语句当中; 在内存中的位置:成员变量在堆内存中,因为对象的存在而存在,局部变量存在于栈内存中。 用二维数组的创建来看:原创 2016-04-14 21:13:32 · 657 阅读 · 0 评论 -
JAVA——匿名对象
调用方法,匿名对象有意义;而调用变量就没意义了。//整除的创建Car c = new Car();c.num = 5;//匿名对象使用new Car().num = 5(1)当对对象的方法只调用一次,可以使用匿名对象来完成,这样写比较简化,如果对一个对象进行多个成员调用,必须给这个对象起个名字。 (2)匿名对象可以作为实际参数进行传递原创 2016-04-14 21:33:26 · 662 阅读 · 0 评论 -
JAVA——守护线程或用户线程(setDaemon)
class StopThread implements Runnable{ private boolean flag = true; public synchronized void run() { while(flag) { try { wait();原创 2016-04-28 09:47:46 · 1229 阅读 · 0 评论 -
JAVA——多线程中的join
class Demo implements Runnable{ public void run() { for(int x = 0;x<50;x++) { System.out.println(Thread.currentThread().getName()+"......"+x); } }}cla原创 2016-04-28 09:55:25 · 429 阅读 · 0 评论 -
JAVA——如何停止线程呢?(interrupt)
stop方法已经过时;那么如何停止线程? 只有一种,run方法结束。开启多线程运行,运行代码通常是循环结构。 只要控制住循环,就可以让run方法结束,也就是线程结束。特殊情况: 当线程处于了冻结状态。就不会读取到标记。那么线程就不会结束。 当没有指定的方式让冻结的线程恢复到运行状态时,这时需要对冻结进行清除。强制让线程恢复到运行状态中来。这样就可以操作标记让线程结束。 Thread类提供了原创 2016-04-27 21:29:24 · 614 阅读 · 0 评论 -
JAVA——构造函数
使用构造函数时需要记住: 1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造函数 3.构造函数可以有0个、1个或1个以上的参数 4.构造函数没有返回值 5.构造函数总是伴随着new操作一起调用构造代码块: 作用:给对象进行初始化。对象已建立就运行,而且优先于构造函数执行; 和构造函数的区别:构造代码块是给原创 2016-04-14 21:49:36 · 391 阅读 · 0 评论 -
JAVA——this语句
this语句只能定义在构造函数的第一行,因为初始化要先执行; this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性; this可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数;class Person{ private String name; private int age; Person(String n原创 2016-04-15 19:24:24 · 1711 阅读 · 0 评论 -
Java:关于super()的用法
1.子类的构造的过程中必须调用父类的构造方法。//父类public class FaClass { public FaClass() { }}//子类public class SonClass extends FaClass { public SonClass(){ super();//显示调用父类构造方法 }}可以看到在子类SonClass转载 2016-04-17 09:15:22 · 527 阅读 · 0 评论 -
JAVA——String与StringBuffer以及StringBuilder
字符串是用一对双引号括起来的字符序列,在java中,它不像c语言中所用的字符数组,实际上是由String类所实现。每一个字符串将产生一个String类的新的实例。为了高效的处理字符串,java将字符串分为两种:一种是在程序中长度不会被改变的字符串;一种是在程序中长度会被改变的字符串,又称为缓冲字符串。Java环境为了存储和维护这两类字符串提供了String和StringBuffer两个类。原创 2016-04-16 12:19:46 · 864 阅读 · 0 评论 -
JAVA——基本数据类型对象包装类/自动装箱
基本数据类型对象包装类。 基本数据类型 基本数据类型对象 byte Byte short Short int Integer long Long boolean Boolean float Float double Double char Character基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间原创 2016-04-30 14:36:55 · 702 阅读 · 0 评论 -
JAVA—— BufferedReader、BufferedWriter
缓冲区的出现是为了提高流的操作效率而出现的。 所以在创建缓冲区之前,必须要先有流对象。 该缓冲区中提供了一个跨平台的换行符。 newLine();import java.io.*;class BufferedWriterDemo{ public static void main(String[] args) throws IOException { //创原创 2016-05-25 01:13:22 · 606 阅读 · 0 评论 -
JAVA——装饰和继承的比较
MyReader//专门用于读取数据的类。 |–MyTextReader —子类—–|—MyBufferTextReader |–MyMediaReader —子类—–|–MyBufferMediaReader |–MyDataReader —子类—–|–MyBufferDataReaderclass MyBu原创 2016-05-25 11:31:38 · 676 阅读 · 0 评论 -
Map集合
Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。 1,添加。put(K key, V value) putAll(Map<? extends K,? extends V> m) 2,删除。clear() remove(Object key) 3,判断。containsValue(Object value) containsKey(Object key) isEmpty(原创 2016-05-12 21:03:22 · 443 阅读 · 0 评论 -
Map集合的两种取出方式
Map集合的两种取出方式:1、Set<k> keySet将map中所有的键存入到Set集合。因为set具备迭代器。 所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。 Map集合的取出原理:将map集合转成set集合。再通过迭代器取出。2、Set<Map.Entry<k,v>> entrySet将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.E原创 2016-05-12 21:46:19 · 2630 阅读 · 0 评论 -
JAVA——继承相关
当子类继承父类,沿袭了父类的功能 到子类中,但是子类虽具备该功能,但是功能的内容和父类不一致,这是,没有必要定义新功能,而是使用覆盖,保留父类的功能定义,并重写功能内容。覆盖: 1.子类覆盖父类,必须保证子类的访问权限大于等于父类权限,才可以覆盖,否则编译失败。 2.静态只能覆盖静态。class Fu{ void show() { System.o原创 2016-04-17 21:04:18 · 362 阅读 · 0 评论 -
JAVA——网络编程(TCP)
import java.io.*; import java.net.*; class TcpClient { public static void main(String[] args)throws Exception { //创建客户端的socket服务。指定目的主机和端口 Socket s = new Socket(“192.168原创 2016-05-02 14:27:13 · 510 阅读 · 0 评论 -
Java——数组、向量(Vector)详解
int []arr=new int[5]; 和int arr[] = new int[5];效果是一样的,不过开发中推荐前者int[]arr = new int[]{3,5,1,7};或者简化为int []arr = {3,5,1,7};原创 2016-04-11 17:44:13 · 17622 阅读 · 2 评论 -
JVM的内存区域划分
JVM的内存区域划分学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 如上图所示,首先Java源代码文件转载 2016-04-20 10:40:54 · 507 阅读 · 0 评论 -
JAVA——interface(接口)
接口的初期理解,可以认为是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。 class 用于定义类 interface 用于定义接口接口定义时,格式特点:1、接口中常见定义:常量,抽象方法。2、接口中的成员都是固定修饰符。常量:public static final 方法:public abstract记住:接口中的成员都是public的原创 2016-04-20 12:20:22 · 541 阅读 · 0 评论 -
JAVA——集合框架的工具类Collections
Collections:它的出现给集合操作提供了更多的功能。这个类不需要创建对象,内部提供的都是静态方法。Collections.sort(list);//list集合进行元素的自然顺序排序。Collections.sort(list,new ComparatorByLen());//按指定的比较器方法排序。Collections.max(list); //返回list中字典顺序最大的元素。 i原创 2016-05-15 21:39:16 · 2478 阅读 · 0 评论 -
JAVA——用于操作数组的工具类Arrays
/* Arrays:用于操作数组的工具类。 里面都是静态方法。asList:将数组变成list集合 */import java.util.*; class ArraysDemo { public static void main(String[] args) { // int[] arr = {2,4,5}; // // Sys原创 2016-05-16 13:00:16 · 1195 阅读 · 0 评论 -
JAVA——集合变数组
/*集合变数组。Collection接口中的toArray方法。*/import java.util.*;class CollectionToArray{ public static void main(String[] args) { ArrayListString> al = new ArrayListString>();原创 2016-05-16 15:24:55 · 1042 阅读 · 0 评论