摘要: Collection集合选取规则:(Vector现在用的不多了所以不考虑) if(数据唯一,无序(输入顺序)){ if(需要排序){ 选用TreeSet } else{ 选用HashSet } } else{ if(查询多){ 选用ArrayList } if(增删多){ 选用LinkedList 阅读全文
posted @ 2017-08-24 15:35 ~~晴天~^.^ 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 关于静态内部类 1.静态内部类可以等同看做静态变量 内部类重要的作用:可以访问外部类中私有的数据。 2.静态内部类可以直接访问外部类的静态数据,无法直接访问成员。 关于静态内部类 1.静态内部类可以等同看做静态变量 内部类重要的作用:可以访问外部类中私有的数据。 2.静态内部类可以直接访问外部类的静 阅读全文
posted @ 2017-08-24 15:34 ~~晴天~^.^ 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 汉字匹配:[\u4e00-\u9fa5] 1. 邮箱 \w*@\w*\.\w*(.\w*)? abc@yahoo.com abc_adf@yahoo.com.cn 2. 固定电话号码 0\d{2,3}-\d{7,8}|\(0\d{2,3}\)-\d{7,8} 0510-1234567 (010)-1 阅读全文
posted @ 2017-08-24 15:33 ~~晴天~^.^ 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 编程一定要面向抽象编程,这样可以使程序耦合度降低,可扩展能力增强! 接口作用: 1.可以使项目分层,所有层都面向接口开发,开发效率提高了。 2.接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,变得“可插拔”。可以随意切换。 接口和抽象类都能完成某个功能,优先选择接口。 因为接口可以多实现, 阅读全文
posted @ 2017-08-24 15:32 ~~晴天~^.^ 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 抽象类和抽象方法不能被final修饰!报错非法的组合。 1.如何定义抽象类? class关键字前加abstract 2.抽象类无法被实例化 3.虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造 方法是给子类创建对象用的。 4.抽象类中可以定义抽象方法. 抽象方法的语法:在方法的修饰符列表中添 阅读全文
posted @ 2017-08-24 15:31 ~~晴天~^.^ 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Super关键字 1.super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. 2.super代表的是当前子类对象中的父类型特征。 //通过子类的构造方法去调用父类的构造方法,作用是:给当前子类对象中的父类型特征赋值。 super(...);调用了父类中的构造方法,但是 阅读全文
posted @ 2017-08-24 15:30 ~~晴天~^.^ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: final表示不可改变的含义 1、采用final 修饰的类不能被继承 2、采用final 修饰的方法不能被覆盖 3、采用final 修饰的变量不能被修改 4、final修饰的变量必须显示初始化(该变量必须在构造方法运行结束之前赋上值,否则报错!) 5、如果修饰的引用,那么这个引用只能指向一个对象,也 阅读全文
posted @ 2017-08-24 15:30 ~~晴天~^.^ 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 静态绑定:程序在本类和父类中查找匹配的方法执行 动态绑定:程序根据引用指向的堆中数据查找最合适的方法执行,如找不到再返回父类中查找 关于java语言中向上转型和向下转型 1.向上转型(upcasting) : 子 >父 2.向下转型(downcasting) : 父 >子 注意:无论是向上转型还是向 阅读全文
posted @ 2017-08-24 15:29 ~~晴天~^.^ 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 关于继承引入类继承最基本的作用是:代码重用。 语法:[修饰符列表] class 子类名 extends 父类名{类体;} 父类,超类,基类,superclass 子类,派生类,subclass 没有显示继承其他类,默认继承SUN提供的java.lang.Object;java语言中, 类和类之间只支 阅读全文
posted @ 2017-08-24 15:28 ~~晴天~^.^ 阅读(156) 评论(0) 推荐(0) 编辑
摘要: //冒泡排序arr数组,sequence为true时,为升序排序;sequence为false时,为降序排序 for(int i = 0;i < arr.length;i++){ for(int j = 0;j < arr.length - i - 1;j++){ if(sequence && ar 阅读全文
posted @ 2017-08-24 15:27 ~~晴天~^.^ 阅读(221) 评论(0) 推荐(0) 编辑
摘要: //获得2数的最大公约数 int a = y < x ? y : x; int b = x >= y ? x : y; int c = 1, e; // 定义c为最大公约数,d为最小公倍数,e为中间变量 while (b % a != 0) { e = b  阅读全文
posted @ 2017-08-24 15:26 ~~晴天~^.^ 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 单例模式要领:1.构造方法私有化2.对外提供一个公开的静态的获取当前类型对象的方法.3.提供一个当前类型的静态变量。 单例模式分为两种:饿汉式单例:在类加载阶段就创建了对象。懒汉式单例:用到对象的时候才会创建对象。 单例模式是23种设计模式中最简单的一种设计模式。 为了解决什么问题? 1. 为了保证 阅读全文
posted @ 2017-08-24 15:25 ~~晴天~^.^ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 类A的属性是另一个类B,那么这两个类是关联的,但不一定是聚合,如果在A类中创建了B类的实例(使用new!),那么B类和A类就是聚合关系,但不一定是组合关系,因为不一定在A类创建的同时去创建B类的实例,反之则B类和A类就是组合关系了! 关于判断两者关系,具体问题具体分析,最主要还是要看生命周期! 聚合 阅读全文
posted @ 2017-08-24 14:42 ~~晴天~^.^ 阅读(774) 评论(0) 推荐(0) 编辑
摘要: this用在所有方法中: 用来区分局部变量和成员变量的名字二义性! 如:在set方法中这样写:name = name; 则java会遵循“谁近谁优先”的规则,会给局部变量赋值! 因为所有的成员(方法或引用)按规范应使用“引用.”来访问,那么在成员方法中,要访问成员变量就应使用this来做引用!(th 阅读全文
posted @ 2017-08-24 14:41 ~~晴天~^.^ 阅读(174) 评论(0) 推荐(0) 编辑
摘要: java内存的主要划分:class文件加载到方法区,方法区还存放静态变量和常量,方法区开始执行程序,当调用方法时,会将该方法的栈帧压到栈区,该栈帧中存放局部变量,当方法中new出一个对象,则会在堆中开辟空间存放,使用完后由垃圾收集器回收,垃圾收集器就是针对堆区。 堆中的对象何时被回收:当堆中的对象没 阅读全文
posted @ 2017-08-24 14:27 ~~晴天~^.^ 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 关于系统默认值:基本数据类型byte,short,int,long 0float,double 0.0boolean falsechar \u0000引用数据类型:null 面向过程与面向对象的区别(盖饭、蛋炒饭) 炒饭对应为面向过程,蛋和饭混为一个整体,当客户需求改变时,如客户想吃别的炒饭,则要把 阅读全文
posted @ 2017-08-24 13:57 ~~晴天~^.^ 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 构造方法的作用是 第一,创建对象 第二,给成员变量赋值(初始化成员变量),因为成员变量是对象级别的,所以成员变量只有在构造方法调用时才被赋值(或者用系统默认赋值,或者用用户自己给的实参的值赋值)!!! 构造函数(构造方法,构造器,Constructor) 构造方法主要用来创建类的实例化对象, 可以完 阅读全文
posted @ 2017-08-24 13:56 ~~晴天~^.^ 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 成员是对象级别的,访问成员必须用“引用.”,如果用“类名.”访问会报错!如果用空引用访问成员则会发生控空指针异常! 静态是类级别的,访问静态必须用类“类名.”,如果用“引用.”也能访问,但是底层仍使用“类名.”,并不会用到对象,如果用空引用访问静态,也不会报错,因为静态访问与对象无关! 何时使用静态 阅读全文
posted @ 2017-08-24 13:53 ~~晴天~^.^ 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1. 构造方法注入代码如下:public UserManagerImpl(UserDao userDao) { this.userDao = userDao; } set注入代码如下: public void setUserDao(UserDao userDao) { this.userDao = 阅读全文
posted @ 2017-08-24 13:52 ~~晴天~^.^ 阅读(328) 评论(0) 推荐(0) 编辑
摘要: <!--WizRtf2Html Charset=0 -->n层阶梯的楼梯,每次可以走1~2层阶梯,打印列举所有走法。 // 比如 // 走1层的可能走法 (1种) // 1 // 走2层的可能走法(2种) // 1 1 // 2 // 走3层的可能走法(3种) // 1 1 1 // 1 2 //  阅读全文
posted @ 2017-08-24 13:50 ~~晴天~^.^ 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 方法(Method) 实际参数 调用者调用一个具体方法的时候,实际传递的参数 阅读全文
posted @ 2017-08-24 13:48 ~~晴天~^.^ 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 资料来源:http://www.cnblogs.com/smile361/archive/2013/11/25/3441553.html 程序计数器: 当前线程所执行的字节码的行号指示器 本地方法栈: 为虚拟机使用的native方法服务 java虚拟机栈Stack: 描述java方法执行的内存模型, 阅读全文
posted @ 2017-08-24 13:46 ~~晴天~^.^ 阅读(174) 评论(0) 推荐(0) 编辑
摘要: // 1. break //break语句用于do-while while for语句时,可以是程序终止循环,而执行循环体后的语句。 //一般和一条判断语句一起使用,条件判断为真得时候,跳出循环。 // for(int i=0;i<10;i++) // { // if(i==5) // { // b 阅读全文
posted @ 2017-08-24 13:45 ~~晴天~^.^ 阅读(208) 评论(0) 推荐(0) 编辑
摘要: for循环的三个语句可以放置任何表达式,但是有个不成文的规则,for循环的3个部分应当对同一个计数器变量进行初始化,检测和更新。若不遵循这一规则,编写的循环常常晦涩难懂! 如果在循环第一部分声明了一个变量,那么该变量的作用域就是整个循环体,如果这个变量需要在循环结束后使用,那么需要在循环开始前的外部 阅读全文
posted @ 2017-08-24 13:44 ~~晴天~^.^ 阅读(145) 评论(0) 推荐(0) 编辑
摘要: while循环 while是最基本的循环,它的结构为: 只要布尔表达式为true,循环体会一直执行下去。 有时程序也需要死循环。 以上实例编译运行结果如下: do…while循环 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do…whil 阅读全文
posted @ 2017-08-24 13:42 ~~晴天~^.^ 阅读(176) 评论(0) 推荐(0) 编辑