泛型简介,泛型类及使用
摘要:如果我们需要产生多个对象,每个对象的逻辑完全一样,只是对象内的成员变量的类型不同。那么我们该如何去做? ① 创建多个类文件,给每个类中的成员变量设置指定的数据类型; 1 public class Demo1{ 2 public static void main(String []args){ 3 M
阅读全文
异常概念和处理机制,try-catch-finally,throw和throws,自定义异常
摘要:异常概念和处理机制 什么是异常? 所谓异常就是指在程序运行的过程中发生的一些不正常事件。(如除0溢出,数组下标越界,所要读取的文件不存在); 异常导致的后果? Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息,其将被提交给Java运行时系统,这个过程称为
阅读全文
随机验证码
摘要:案例介绍:模拟登录时需要输入验证码功能; 案例设计: ① 证码由4个字符组成; ② 验证码只能由数字和大写字母组成; ③ 每次输入的字符各不相同,不能重复;
阅读全文
常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类
摘要:Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() public void setTime(long time) public Boolean before
阅读全文
String、StringBuffer和StringBuilder,定义一个自己的StringBuilder的类
摘要:String Java中的字符串值属于String类,虽然有其它方法表示字符串(如字符数组),但Java一般使用String类作为字符串的标准格式,Java编译器把字符串值作为String对象; String对象一旦创建就不能改变。如果需要进行大量的字符串修改操作,应该使用StringBuilder
阅读全文
自动装箱和拆箱,枚举类型
摘要:自动装箱和拆箱 有时需要将int这样的基本类型转换为引用类型对象; 基本数据类型的自动装箱,拆箱是J2SE 5.0提供的新功能,为打包基本数据类型提供了方便,但提供方便的同时隐藏了细节,建议在能够区分基本数据类型与引用类型的差别时再使用; 一个自动装箱的例子: Integer i=10;相当于Int
阅读全文
使用内部类开发一个存放数据的容器
摘要:案例介绍:开发一个容器用来存放键值对,键存放英文名字,值存放中文名字,对键值对使用内部类来进行封装; 案例设计: ① 使用静态内部类封装键值对数据; ② 容器默认大小为5,超过就扩容其2倍; ③ 通过调用entryArrays方法返回容器中的数据;
阅读全文
成员内部类,静态内部类,匿名内部类,局部内部类
摘要:定义:将一个类定义在另一个类的内部。内部的类称为内部类; public class Outer{ class inner{ //省略 } } 特点: ① 内部类可以很好的实现隐藏,可以使用protected,private修饰符; ② 内部类可以直接访问外部类的所有成员,包括私有成员; ③ 外部类不
阅读全文
策略模式
摘要:定义:是对算法的包装,把使用算法的的责任和算法本身分割开,委派给不同的对象管理,策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类型的子类型、就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”; 意图:针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而
阅读全文
简单工程模式
摘要:简单工厂模式 定义:专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类或接口; 意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例;
阅读全文
面向对象编程(七)接口,面向接口编程
摘要:接口 接口语法: interface 接口名{ //静态常量、抽象方法 } 接口的特点: ① 接口中只能存放静态常量和抽象方法; ② Java接口是对功能的扩展; ③ 通过实现接口,java类可以实现多实现; ④ 一个人可以同时继承(extends)一个父类并且实现(implements)多个接口;
阅读全文
模板方法模式
摘要:定义:一个模板方法用一些抽象的操作定义一个算法,而子类将重定义这些操作以提供具体行为; 意图:定义了一个在操作中的一个算法框架,把一些步骤推迟到子类中去实现。模板方法模式让子类不需要改变算法结构而重定义特定的算法步骤; 比如 Work(){ ① 准备 ② 实施 ③ 结束 } 可以将第二步实施声明为抽
阅读全文
面向对象编程(六)抽象类
摘要:抽象的定义:抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马,奔驰都属于汽车,汽车是抽象出来的概念); 抽象类:Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类; 抽象方法特点:
阅读全文
面向对象编程(五)多态--对象上下转型,动态绑定和静态绑定,应用
摘要:多态 概念:指同一操作作用于某一类对象,可以有不同的解释,产生不同的执行结果; 存在的必要条件 ① 需要存在继承和实现关系; ② 同样的方法调用而执行不同操作,运行不同代码(重写操作); ③ 在运行时父类或者接口的引用变量可以引用其子类的对象; 作用 ① 多态通过分离做什么和怎么做,从另一个角度将接
阅读全文
面向对象编程(三)封装--包
摘要:打包的意义: ① 标准Java库是由一系列包组成,包括java.lang,java.util,java.net等。标准Java包就是层次型包结构,就如同硬盘上嵌套的子目录一样,我们可以使用嵌套层次结构来组成包; ② Java的包是为了更好地规划代码,防止命名冲突和混乱。所以Java出现了打包机制;
阅读全文
面向对象编程(二)封装--构造方法,this关键字,static关键字,方法重载
摘要:面向对象三大特点:封装、继承、多态 封装概念 ① 将东西包装在一起,然后以新的完整形式呈现出来: 将方法和字段一起包装到一个单元中,单元以类的形式实现; ② 信息隐藏,隐藏对象的实现细节,不让外部直接访问到; ③ 将数据和方法包装进类中,加上具体实现的隐藏,共同被称作封装,其结果是一个同时带有特征和
阅读全文
面向对象编程(四)继承,概念及super关键字,final关键字,Object类常见方法
摘要:继承 概念: ① 继承背后的思想就是基于已存在的类来构建新类; ② 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③ 当从其它类导出的类叫作子类,被导出的类叫作父类; ④ 在Java中,除了Object类外,所有类都是子类,都有唯一父类; ⑤ 继承在OO
阅读全文
单例模式
摘要:单例模式定义:单例模式就是只有一个实例,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。 单例模式要点: ① 某个类只能有一个实例 ② 它必须自行创建这个实例 ③ 它必须自行向整个系统提供这个实例 1 public class SingleTonDemo{
阅读全文
面向对象编程(一)
摘要:一、理解面向对象 结构化程序设计 1、程序=算法+数据结构 2、算法第一,数据结构第二 二、面向对象程序设计OOP 1、程序=对象+对象+… 2、据第一,算法第二 3、关键:让每个对象负责执行一组相关任务 三、面向对象编程的特性 1、万物皆对象 2、程序是一组对象彼此之间在发送消息 3、每个对象都有
阅读全文
杨辉三角形
摘要:利用二维数组打印一个杨辉三角 案例介绍 ①设计打印输出一个8行的杨辉三角形 ②找出杨辉三角形的特点 案例设计 ①二维数组的声明和使用 ②使用for循环来对数组进行赋值和输出 实施方案 ①声明一个8行8列的数组 ②第一列和对角线值为1,其它列的值是其正上方元素和其左上方元素之和。 ③对数组进行赋值并打
阅读全文
静态方法,Arrays类,二维数组
摘要:一、静态方法 静态方法属于类的,可以直接使用类名.方法名()调用。 静态方法的声明 访问修饰符 static 类型 方法名(参数列表) { //方法体 } 方法的作用:一个程序分解成几个方法,有利于快速调试程序,也有利于提高程序代码的利用率。因为方法是可以多次被调用的,调用次数和调用场合没有限制。
阅读全文
数组,查找算法,二分查找法,冒泡排序,选择排序,插入排序
摘要:一、常用数组查找算法 工作原理:它又称为顺序查找,在一列给定的值中进行搜索,从一端的开始逐一检查每个元素,知道找到所需元素的过程。 例1:查找指定的数在数组中出现的位置,找到返回下标,找不到返回-1 1 import java.util.Scanner; 2 public class LinearS
阅读全文
万年历(二)
摘要:根据if与for编写万年历程序 上一篇中有判断年月的天数,这一篇中有几个要点 ①计算1900年1月1日之前的总天数 ②计算输入月份的天数(比如输入5,应计算1-4月的总天数) ③星期几计算:1+总天数%7 \t ④每行输入7个 完成万年历完整代码如下 1 import java.util.Scann
阅读全文
循环结构
摘要:一、while循环:又称为当型循环 while(循环条件){ //循环操作语句 } 要点:①先判断后执行②循环次数不定③避免死循环 例题:输入一个正整数,把整数逆序输出,如输入12345,输出54321 1 import java.util.Scanner; 2 public class dowhi
阅读全文
万年历(一)
摘要:先用条件语句判断年月的天数 分析: 一、年份有闰年与平年之分,区分方法 ①年份能被400整除为闰年。 ②年份能被4整除,且不能被100整除为闰年。 二、月份中1,3,5,7,8,10,12月份有31天 月份4,6,9,11有30天 闰年2月有29天,平年2月有28天。 下列代码仅用于判断天数 1 i
阅读全文
条件结构
摘要:一、if...else语句 1 //导入包使用Scanner 2 import java.util.Scanner; 3 public class IfDemo{ 4 public static void main(String [] args){ 5 Scanner input=new Scann
阅读全文
类型转换,位运算符
摘要:一、自动化类型转换:在某种条件下,系统自动完成类型转换也称为隐含转换 ① 两种类型兼容 ② 目标类型大于源类型 ③ 对于表达式,如果一个操作数为double型,则整个表达式可提升为double型 ④ 示例:int i=10;double d=i; 1 public class DataDemo2 2
阅读全文
变量,数据类型
摘要:一、声明和使用变量的步骤: ①声明一个变量以分配空间:根据类型开辟空间。 int a; int 占4个字节 ②为变量赋值:将数据存入空间。 a=20; ③使用变量:取出数据,使用。 System.out.println(a); 二、标识符命名规则 变量名=首字符+其余部分 首字符:字母、下划线、’$
阅读全文
注释
摘要:一、单行注释 用//text 表示单行注释,例子如下 1 public static void main(String []args){ 2 //打印输出到控制台 3 System.out.println("FirstJava"); 4 System.out.print("FirstJava\n")
阅读全文
下载,配置环境变量,第一个demo
摘要:一、在 http://www.oracle.com 下载java JDK 安装到自定义的地方。 二、配置环境变量:在我的电脑→高级系统设置→环境变量 ① 找到Path新增一个路径(该路径为JDK存放的位置的bin,比如我放在D:\J2EE\JDK1.8.0\bin 下),两个路径之间要加分号隔开 ②
阅读全文