
Java
文章平均质量分 84
神奇小白
厚德载物、孜孜不倦
展开
-
重新理解public static void main(String[] args) {}
当初学java总是在public static void main(String[] args) {}中写语句,那时对这个很模糊,只知道每个class里只能有一个main函数,是程序的入口。回过头再看一下:* public 被jvm调用,访问权限足够大。public 是修饰符* static 被jvm调用,不用创建对象,直接类名访问。static说明方法是静态的(静态方法可原创 2017-05-01 22:07:10 · 4504 阅读 · 0 评论 -
java多态polymorphic多态的理解一
温故而知新polymorphic 多种形态的意思A :多态概述 事物存在多种形态(比如有一只狗在吃馍馍, 你可以说狗在吃馍也可以说动物在吃饭)B:多态前提 a要有继承关系 b要有方法重写 c要有父类引用指向子类对象C案例演示class Demo_polymorphic{ public static void main(String args[]){ Dog a原创 2017-05-01 22:17:59 · 1772 阅读 · 0 评论 -
java多态polymorphic多态的理解二
java多态中的成员访问特点之成员变量,成员方法class Demo_polymorphic{ public static void main(String args[]){ Father f = new Son();父类引用指向子类对象 f.print();//son/***成员方法编译看左边(父类),运行看右边* 编译是为了检查一些错误,若父类中有print方法则能编译通过*原创 2017-05-01 22:29:17 · 259 阅读 · 0 评论 -
java多态polymorphic多态的理解三之向上转型和向下转型及优与不足
向上转型和向下转型基本数据自动类型提升和数据强制类型转换int i = 10;byte b = 20;i = b;//自动类型提升b = (byte)i;//强制类型转换egclass Demo_polymorphic{ public static void main(String args[]){ Father f = new Son();//父类引用指向子类对象原创 2017-05-01 22:44:07 · 364 阅读 · 0 评论 -
java多态polymorphic多态的理解四之多态的优点
java多态的优点之一就是提高了代码的扩展性(由多态保证)用代码举个例子class Demon_Animal{ public static void main(args[]){ Cat c = new Cat(); c.eat(); method(new Cat()); method(new Dog());//错 Animal a = new Cat();//不原创 2017-05-01 23:13:32 · 516 阅读 · 0 评论 -
java的三种循环
循环结构for语句的格式:for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; }while循环的基本格式:while(判断条件语句) { 循环体语句; } 完整格式: 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; }循环结构do…while语句的格式:do { 循环体语句; }while(判断条件语句);完整格式; 初始化语句原创 2017-05-02 00:01:03 · 718 阅读 · 0 评论 -
set,hashset及HashSet存储自定义对象保证元素唯一性的解析,还有eclipse批量替换查询
接口 Set 类型参数: E - 此 set 所维护元素的类型 所有超级接口: Collection, Iterable 所有已知子接口: NavigableSet, SortedSet 所有已知实现类: AbstractSet, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobState原创 2017-05-10 19:23:02 · 667 阅读 · 0 评论 -
LinkedHashSet
类 LinkedHashSetjava.lang.Object——java.util.AbstractCollection————java.util.AbstractSet——————java.util.HashSet————————java.util.LinkedHashSet类型参数:E - 由此 set 维护的元素的类型所有已实现的接口: Serializ原创 2017-05-10 19:41:00 · 347 阅读 · 0 评论 -
用java写九九乘法表
用java写九九乘法表先来个简单的例子public class a { public static void main(String[] args){ for(int i=1;i<=5;i++) { for(int j = 1;j<=i;j++){ System.out.print("*"); } System.out.println(); }原创 2017-05-02 21:28:04 · 570 阅读 · 0 评论 -
控制跳转语句:标号 a: 的使用-跳出多重循环
标号结合break可以跳出多重循环public class c { /** * 控制跳转语句:标号 eg a: */ public static void main(String[] args) { // TODO Auto-generated method stub outer: for (int i = 1;i <= 10 ;i++ ) { //outer就是标号,原创 2017-05-02 21:30:44 · 792 阅读 · 0 评论 -
Overload java重载的一些笔记
java基础复习---重载public class ooverload { /** * Overload 重载的意思 * A:方法名同名 * B:参数列表不同 * C:与返回值无关 * * 重载的分类 * 1,参数个数不同 * 2,参数类型不同,顺序不同 */ public static void main(String[] args) {原创 2017-05-02 21:38:07 · 232 阅读 · 0 评论 -
Java中的内存分配以及栈和堆的区别
Java中的内存分配以及栈和堆的区别 A:栈(先进先出)存储局部变量 局部变量:定义在方法声明上和方法中的变量 B:堆 存储new出来的数组或对象 C:方法区 面向对象部分讲解 D:本地方法区 和系统相关 E:寄存器*给CPU使用 自身也了解的不深,下次再来补这个坑原创 2017-05-02 21:41:49 · 213 阅读 · 0 评论 -
java数组
java数组的静态和动态的初始化及格式和注意事项/** * java数组是静态的,必须经过初始化后才能使用,并且一旦初始化指定了数组的长度,该长度是不可变的。 * * * * A:数组静态初始化的格式: * 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}; * 初始化时显示指定每个数组元素的初始值,由系统决定数组的长度 * 简化格式:原创 2017-05-02 21:49:30 · 221 阅读 · 0 评论 -
数组的操作——查表法
/** * 数组的操作————查表法 * eg : 数组查表法(根据键盘录入索引,查找对应星期) */import java.util.Scanner;public class g {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print原创 2017-05-02 21:51:27 · 9654 阅读 · 0 评论 -
面向对象成员变量和局部变量的区别
面向对象成员变量和局部变量的区别* A:在类中的位置不同* 成员变量:在类中方法外* 局部变量:在方法定义中或者方法中声明上* B:在内存中的位置不同* 成员变量:在堆内存(成员变量属于对象,对象进堆内存)* 局部变量:在栈内存(局部变量属于方法,方法进栈内存)* C:生命周期不同* 成员变量:随着对象的创建而存在,随着对象的消失而消失* 局部变量:随着方法的调原创 2017-05-02 21:55:47 · 436 阅读 · 0 评论 -
匿名对象
匿名对象/** * A:什么是匿名对象 * 没有名字的对象 * B:匿名对象应用场景 * a:调用方法,仅仅只调用一次的时候。 * 那么,这种匿名调用有什么好处吗? * 节省代码 * 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。 * b:匿名对象可以作为实际参数传递 */class Demo3_Car { pu原创 2017-05-02 21:57:53 · 481 阅读 · 1 评论 -
this关键字
this关键字特点代表当前对象的引用 this的应用场景用来区分成员变量和局部变量重名public class demo_this { public static void main(String[] args) { Person p1 = new Person(); p1.setName("张三"); p1.setAge(23); System.out.pr原创 2017-05-02 22:11:26 · 290 阅读 · 0 评论 -
构造方法
A:构造方法概述和作用* 给对象的数据(属性)进行初始化B:构造方法格式特点* a:方法名与类名相同(大小也要与类名一致)* b:没有返回值类型,连void都没有* c:没有具体的返回值return;A构造方法的重载* 重载:方法名相同,与返回值类型无关(构造方法一般没有返回值),只看参数列表B:构造方法注意事项* a:如果我们没有给出构造方法,系统将自原创 2017-05-02 22:16:21 · 234 阅读 · 0 评论 -
给成员变量赋值的两种方式的区别
* 给成员变量赋值的两种方式的区别 * A:setXxx()方法****** 修改属性值 * B:构造方法****** 给对象中属性进行初始化 * * 在开发中用setxxx多一些public class demon_var { public static void main(String[] args) { Person p1 = new Person原创 2017-05-02 22:19:50 · 5622 阅读 · 0 评论 -
static关键字的理解
A:static关键字的特点------a:随着类的加载而加载-------b:优先于对象存在-------c:被类的所有对象共享----------举例:------------- 其实这个特点也是在告诉我们什么时候使用静态?-------------------如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。--------------------共性原创 2017-05-02 22:26:53 · 419 阅读 · 0 评论 -
HashSet和LinkedHashSet练习
编写一个程序,获取10个1至20的随机数,要求随机数不能重复。并把最终的随机数输出到控制台import java.util.HashSet;import java.util.Random;public class a { /** * 需求:编写一个程序,获取10个1至20的随机数,要求随机数不能重复。并把最终的随机数输出到控制台。 */ public static void原创 2017-05-10 22:35:54 · 389 阅读 · 0 评论 -
二叉树TreeSet类的使用原理和compareTo()方法
类 TreeSetpublic class TreeSet extends AbstractSet implements NavigableSet, Cloneable, Serializable基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。原创 2017-05-10 22:44:27 · 2794 阅读 · 0 评论 -
TreeSet类练习
在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典顺序),而且还不能去除重复import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.TreeSet;public class e { /** * 在一个集合中存储了无序并且重复的字原创 2017-05-10 22:48:41 · 996 阅读 · 0 评论 -
Map<K,V>接口及其子类HashMap的基本使用和其两种遍历方法(如何保证键为引用类型的唯一性)
接口 Map类型参数:K - 此映射所维护的键的类型V - 映射值的类型public interface Map已知常用实现类: AbstractMap, EnumMap, HashMap, LinkedHashMap, TreeMap, 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。 通俗的说,键不可以重复,值可以重复(一个值可以被多个键映射原创 2017-05-11 21:46:24 · 2481 阅读 · 0 评论 -
LinkedHashMap<K,V>的用法
类 LinkedHashMappublic class LinkedHashMap extends HashMap implements MapMap 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)原创 2017-05-11 21:58:36 · 2674 阅读 · 0 评论 -
TreeMap<K,V>的使用
类 TreeMappublic class TreeMap extends AbstractMapimplements NavigableMap, Cloneable, Serializable 基于红黑树(Red-Black tree)的 NavigableMap 实现。 该映射根据其键的自然顺序进行排序, 或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用原创 2017-05-11 22:04:07 · 2100 阅读 · 0 评论 -
HashMap练习统计字符串中每个字符出现的次数和HashMap嵌套HashMap
统计字符串中每个字符出现的次数 分析: 1,定义一个需要被统计字符的字符串 2,将字符串转换为字符数组 3,定义双列集合,存储字符串中字符以及字符出现的次数 4,遍历字符数组获取每一个字符,并将字符存储在双列集合中 5,存储过程中要做判断,如果集合中不包含这个键,就将该字符当作键,值为1存储,如果集合中包含这个键,就将值加1存储 6,打印双列集合获取字符出原创 2017-05-11 22:10:08 · 4519 阅读 · 0 评论 -
java代码块{}笔记
代码块的概述和分类 * A:代码块概述 * 在Java中,使用{}括起来的代码被称为代码块。 * B:代码块分类 * 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程)。 * C:常见代码块的应用 * a:局部代码块 * 在方法中出现;限定变量生命周期,及早释放,提高内存利用率 * b:构造代码块 (初始化块) * 在原创 2017-05-03 21:23:14 · 503 阅读 · 0 评论 -
深入理解继承
继承(extends) * 让类与类之间产生关系,子父类关系 继承的好处和弊端A:继承的好处 * a:提高了代码的复用性 * b:提高了代码的维护性 * c:让类与类之间产生了关系,是多态的前提* B:继承的弊端 * 类的耦合性增强了。(耦合性:紧密程度)类和类的关系太强了 * 开发的原则:高内聚,低耦合。 * 耦合:类与类的关系 * 内聚:就是原创 2017-05-03 21:45:17 · 691 阅读 · 0 评论 -
final关键字的使用
final关键字修饰类,方法以及变量的特点* A:final,最终的* B:final修饰特点 * 修饰类,类不能被继承,String * 修饰方法,方法不能被重写 * 修饰变量,变量就变成了常量,只能被赋值一次,π就应该用final修饰 * final double PI = 3.1415; * public static final double PI = 3.14原创 2017-05-03 21:55:29 · 291 阅读 · 0 评论 -
方法重写Override笔记及其与Overload(重载)的区别
方法重写概述及其应用* A:什么是方法重写 * 重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类)* B:方法重写的应用: * 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。 * 这样,即沿袭了父类的功能,又定义了子类特有的内容。方法重写注意事项 * a:父类中私有方法不能被重写 * 因为父类私有方法子类根本就原创 2017-05-03 22:01:47 · 271 阅读 · 0 评论 -
抽象类的理解及有关面试题
抽象类的概述与特点A:不懂,太抽象了B:抽象类特点 a:抽象类和抽象方法必须用abstract修饰 *abstract class 类名() *public abstract void eat() b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是抽象接口 c:抽象类不能实例化,那么抽象类如何实例化呢? *按照多态的方式,由具体的子类实例化,其实这也是多态的一种,抽原创 2017-05-03 22:06:33 · 2397 阅读 · 0 评论 -
类 Hashtable<K,V>及与HashMap的区别
类 Hashtable所有已实现的接口: Serializable, Cloneable, Map 此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。从Java 2 平台 v1.2起,此类就被改进以实现 Map 接口,使它成为 J原创 2017-05-11 22:59:07 · 530 阅读 · 0 评论 -
类 Collections集合的操作
类 Collectionsjava.lang.Object-java.util.Collectionspublic class Collections extends Object此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 col原创 2017-05-11 23:04:24 · 359 阅读 · 0 评论 -
模拟斗地主洗牌和发牌
模拟斗地主洗牌和发牌,牌没有排序import java.util.ArrayList;import java.util.Collections;public class i { /** * * * 模拟斗地主洗牌和发牌,牌没有排序 * * 分析: * 1,买一副扑克,其实就是自己创建一个集合对象,将扑克牌存储进去 * 2,洗牌 * 3,发牌 * 4原创 2017-05-11 23:07:10 · 700 阅读 · 0 评论 -
泛型固定上边界和泛型固定下边界
泛型固定下边界 ? super E 类 TreeSet构造方法 public TreeSet(Collection c) public TreeSet(Comparator comparator)类 TreeMap构造方法 public TreeMap(Comparator comparator) public TreeMap(Map m)泛型原创 2017-05-11 23:12:44 · 1784 阅读 · 0 评论 -
Collection和Map的总结
Collection List(存取有序,有索引,可以重复) ArrayList 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList 底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢 Vector 底层是数组实现的,线程安全的,无论增删改查都慢 如果原创 2017-05-11 23:19:53 · 316 阅读 · 0 评论 -
java接口还有一个Syntax error, insert "EnumBody" to complete EnumDeclaration错误
接口的概述与特点A:interfaceB:特点 a:接口用关键字interface表示 *interface 接口名 {} b:类实现接口用implements表示 接口名 {} *class 类名 implements 接口名 {} *接口中的方法都是抽象的 c:接口不能实例化,调用抽象方法是没有意义的 *那么如何实例化呢? *按照多态的方法来原创 2017-05-03 22:13:30 · 21216 阅读 · 0 评论 -
类与类,类与接口,接口与接口的关系
类与类,类与接口,接口与接口的关系a:类与类 *继承关系,只能单继承,可以多层继承b:类与接口 *实现关系,可以单实现,也可以多实现 *并且还可以在继承一个类的同时实现多个接口c:接口与接口 *继承关系,可以单继承,可以多继承interface interA{ public abstract void printA();}interface inter原创 2017-05-03 22:17:12 · 1645 阅读 · 0 评论 -
抽象类与接口的区别
抽象类与接口的区别 A:成员区别 *抽象类: a:成员变量:可以是变量,也可以是常量 b:构造方法:有 c:可以抽象,也可以非抽象 *接口 a:成员变量:只可以是常量 b:无构造 c:只可以是抽象 B:关系区别 *类与类 *继承,单继承 *类与接口 *实现,单实现,多实现 *接口与接口 *类原创 2017-05-03 22:20:14 · 191 阅读 · 0 评论