JavaSE
詹詹自喜KING
MLR
展开
-
多态特点及弊端
一、多态中的成员访问特点 Father f=new Son() 1.成员变量:编译看左边,运行看左边 f只能访问父类中定义过的成员变量,不能访问子类中特有的成员变量,并且该成员变量的值与父类一致。 2.构造方法:创建子类对象时,会访问父类的构造方法,先对父类进行初始化。 3.成员方法(非静态):编译看左边,运行看右边 f只能访问父类中定义过的成员方法,不能访问子类中特有的成员方法。如果该原创 2016-05-15 14:35:09 · 614 阅读 · 0 评论 -
用StringBuffer与String解决同一个问题
关于StringBuffer与String的相互转换: 将String转换成StringBuffer:String s = "hello";// 方式1:通过构造方法StringBuffer sb = new StringBuffer(s);// 方式2:通过append()方法StringBuffer sb2 = new StringBuffer();sb2.append(s);注意:转载 2016-05-20 00:30:03 · 580 阅读 · 0 评论 -
并发与并行的区别
学习多线程的时候会遇到一个名词:并发。这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解。 一: 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。 二: 并行原创 2016-05-22 23:17:31 · 79612 阅读 · 19 评论 -
进程与线程的区别
学习多线程的时候必然会遇到另外一个名词:进程。二者一字之差有什么区别呢? 看的一本书上有这样一段话: Windows操作系统是多任务操作系统,它是以进程为单位。一个进程是一个包含有自身地址的程序,每个独立执行的程序都称为进程,也就是正在执行的程序。系统可以分配给每一个进程一段有限的使用CPU的时间(也可叫CPU时间片),CPU在这段时间中实行某个进程,然后下一个时间片又调至另一个进程中去执行。由原创 2016-05-22 23:40:19 · 711 阅读 · 0 评论 -
JAVA多线程实现的三种方式
方式一:继承Thread类 步骤: 1.自定义一个类并继承Thread类 2.自定义类需要重写Thread的run()方法 3.创建对象 4.启动线程class MyThread extends Thread{ public void run() { for(int i=0;i<100;i++){ System.out.println(get原创 2016-05-23 00:48:22 · 362 阅读 · 0 评论 -
java多线程等待唤醒机制
等待唤醒机制: Object类中提供了三个方法: wait():等待 notify():唤醒单个线程 notifyAll():唤醒所有线程 为什么这些方法不定义在Thread类而定义在Object类中呢? 这些方法的调用必须通过锁对象调用,而我们使用的锁对象是任意锁对象。所以,这些方法必须定义在Object类中。生产者和消费者多线程体现(线程间通信问题) 生产者:先看是否有数据,有就等原创 2016-05-23 01:24:38 · 345 阅读 · 0 评论 -
Java基础知识点整理Day_04
1.线程是CPU调度的基本单位,进程之间不共享内存,同一个进程下的多线程共享进程的内存。 http://blog.csdn.net/java_zero2one/article/details/51477901 http://blog.csdn.net/java_zero2one/article/details/51477791 2.Java提供了两种实现创建进程的方法: 对Thread类进行原创 2016-08-29 10:48:43 · 639 阅读 · 0 评论 -
Java基础知识点整理Day_03
1.所有的异常都直接或间接继承 Throwable类,该类有两个重要子类(Error错误类和Exception异常类); Error子类有:AWTError,IOError等,一般表示程序无法解决的严重问题,大多发生在虚拟机身上。 Exception子类有:IOException,SQLException,RuntimeException等。 2. Java异常又分为受检查的异常(check原创 2016-08-28 12:01:39 · 585 阅读 · 0 评论 -
Java基础知识点整理Day_02
1.面向对象三大特性:封装、继承和多态 2.java支持单继承不支持多(重)继承,但是支持多层继承(父类也可以有父类) 3.实现多态的主要手段为重载(overload)和重写覆盖(override) 4. Java的方法重载overload,就是在类中可以创建多个方法, 1)、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数原创 2016-08-27 17:03:49 · 445 阅读 · 0 评论 -
Java基础知识点整理Day_01
1.Java语言的特点 Sun公司在“Java白皮书”中对Java的定义:Java:A simple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,and dynamic language. Java是一种简单的原创 2016-08-26 12:14:28 · 547 阅读 · 0 评论 -
关于StringBuffer
StringBuffer:线程安全的可变字符串。 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加合适一些。原创 2016-05-19 23:32:27 · 340 阅读 · 0 评论 -
详谈String类
String类概述: String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组。构造方法: public String ():空构造 public String(byte[] bytes):把字节数组转成字符串 public String(byte[] bytes, int原创 2016-05-18 17:24:58 · 304 阅读 · 0 评论 -
equals和==的区别
一、“==”比较两个对象的地址是否相同。二、equals() 一般类的equals()方法继承自Object类,源码如下:public boolean equals(Object obj) { return (this == obj); }可见其比较的也是对象的地址是否相同,与“==”效果一样。可是有些类重写了equals()方法,比如说String类,源代码如下:publ原创 2016-05-13 12:10:48 · 277 阅读 · 0 评论 -
继承中构造方法的关系
在继承中,子类所有的构造方法默认访问父类中的无参构造,子类中每一个构造方法第一条语句默认为super();class Father{ public Father(){ System.out.println("父类无参构造"); } public Father(String s){ System.out.println("父类有参构造");原创 2016-05-12 19:44:36 · 793 阅读 · 1 评论 -
代码块
java中将用{}包起来的代码称之为代码块,根据其位置和声明的不同可将其分为:局部代码块、构造代码块、静态代码块和同步代码块。 局部代码块:处于局部位置,可用于限定变量的生命周期。public class CodeBlock { public static void main(String[] args) { { int y=0;//只存在于{}内原创 2016-05-12 19:23:19 · 337 阅读 · 0 评论 -
Static关键字
static特点: 1.可以修饰成员变量或成员方法; 2.随着类的加载而加载,优先于对象存在; 3.被类的所有对象共用; 4.可以通过类名调用也可以通过对象调用(推荐使用类名调用)。注意: 1.静态方法中是没有this关键字的(this随对象存在,static优先于对象存在); 2.静态方法只能访问静态的成员变量和静态的成员方法。静态变量和成员变量的区别: 1.所属不同:静态变量属于类原创 2016-05-12 18:59:17 · 215 阅读 · 0 评论 -
构造方法
java的类中,如果没有给出构造方法,通过反编译可以看出系统将默认提供一个无参构造方法,方法体中内容为空:class Demo{ Demo(){} 这是系统提供的默认的构造方法}public class Gouzao { public static void main(String[] args) { Demo d=new Demo(); }}如果我们给原创 2016-05-12 18:43:03 · 300 阅读 · 0 评论 -
深入理解Java的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。一.抽象类 在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun(); 抽象方法必转载 2016-05-15 15:18:27 · 231 阅读 · 0 评论 -
抽象类与接口杂记
抽象类的特点 1.抽象类和抽象方法必须用abstract关键字修饰 2.抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类 3.抽象类不能实例化,因为它不是具体的,但是它有构造方法用于子类访问父类数据的初始化。 4.抽象类的子类: a.子类还是抽象类,可以不必重写父类抽象方法; b.子类是一个具体的类,必须重写所有的抽象方法。 (抽象类的实例化其实是靠具体的子类实现的,多态的转载 2016-05-16 17:04:46 · 403 阅读 · 0 评论 -
内部类
内部类概述:把类定义在其他类的内部,这个类就被称为内部类。内部类分类:成员内部类、静态内部类、方法内部类(又叫局部内部类)和匿名内部类。内部类共性: 1.内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。 2.内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 。原创 2016-05-17 02:17:01 · 268 阅读 · 0 评论 -
Object类概述
java.lang.Object 1.java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。 2.Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。 3.Object类是Java中唯一没有父类的类。其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。构造方法 public Object() Object类只有这一个构造方法,并且是原创 2016-05-18 14:40:26 · 354 阅读 · 0 评论 -
关于String的简单编程题
一、将字符串反转package string;public class Reverse { public static void main(String[] args) { String s1 = "abc defg wf"; //用字符串转字符数组实现反转 String s2 = ""; char[] cs = s1.toCh原创 2016-10-05 22:37:56 · 3426 阅读 · 0 评论