一.需求分析:采集,确认,分析可行性(需求调研人员,项目经理,UI工程师参与,测试工程师,保证所有需求可量化)
成果:需求分析说明书。2.界面原型
二.设计阶段:1.概要设计阶段①开发技术②架构设计(三层架构:贫血或由其衍生下来的多层架构)③完成对实体的抽取(项目经理,设计人员,中央平台部)
2详细设计①抽取出bean类②每一层的接口,主要是业务层和持久层的接口③数据库表设计。(组长或技术骨干参与)
成果:概要设计和详细设计,数据库设计和数据字典。
三.编码阶段(时间最短):根据设计去实现功能。测试员:单元测试,回归测试,集成测试
四.测试:完整的项目,测试人员,程序员:路径测试,性能测试,压力测试,用户环境测试。
五.实施阶段:由专门的实施工程师搭网络
维护阶段:售后工程师
三层架构:根据职能分成三个大的架构,
表示层:类:用户交互,界面,展示。属性和方法
按功能模块分包
业务层:业务处理,//数据传递对象:bean,拥有大量的属性和get,set方法
数据访问层/持久层:类:完成与数据库的交互CRUD增删查改。
Bean中的属性,数据传输对象
方法抽取至业务层
设计方法:业务层接口
常用类,
Date类
包装类
异常处理
this super
操作. 属性和方法,含义:当前对象 代表子类对象父类的部分,
可以操作本类所有属性和方法 只能看父类,受访问修饰符
不受访问修饰符的限制。可以访问 的限制,重写的时候会有所
同包父类除private的方法与属性, 区别。用途:大部分使用this,
不同包只能访问public与 只有企图调用本类重写方法在
protected的方法与属性 重写前的效果时才使用super.
()操作 调用本类的其他构造,只能写在 调用父类指定的构造方法,只能写
构造方法里面,且为第一句,没 在构造方法中,且只能写在第一句
默认的this() 有默认调用父类公共无参构造
String 是存在变量之中
字符串常量:①字符串也是一个对象,不仅仅是一个值,所有的字符串常量在加载期就已经被产生出来了。在数据段中,叫字符串常量池。预先把字符串常量放在池中,调用时直接去取;
① 如果new出来的对象是在堆里面,而加载时就会在常量池中创建一个字符串对象,所以new时会有两个对象。
② String对象的内容不可变,如果变就指向了一个不一样的对象
③ String对象内容不可变导致操作对内存占有极大,使用StringBuffer或StringBuilder
String跟char[]有关的方法。
String str = new String(array);//根据char数组产生String对象
char[] toArray = str.toCharArray();//将String对象转换成char[]
System.out.println(str.length());//length方法获取字符长度
System.out.println(str.charAt(4));//在字符串的那个位置的字符
System.out.println(str.indexOf('l'));//得到字符在String中第一次出现的位置
System.out.println(str.lastIndexOf('l'));//最后一次出现的位置
//跟比较有关系的
System.out.println("hello".equals(str));
System.out.println("HelLo".equalsIgnoreCase(str));//忽略大小写比较
System.out.println("helloworld".compareTo(str));//字典顺序比较字符串大小
System.out.println("HelloWorld".compareToIgnoreCase(str));//忽略大小写比较
System.out.println(str.startsWith("he"));//判断字符串以什么为开头
System.out.println(str.endsWith("lo"));//判断字符串以什么结尾
System.out.println(str.contains("ll"));//判断字符串是否包含某个子串
/*
* 分清字符串为空和字符串为空串的区别
*/
str1 = null;//没有字符串对象
str2 = "";//有字符串对象,但没装字符
//严格作字符串非空
if(str1 != null && !str1.trim().equals("")){
System.out.println("字符串不为空或全空格空串");
}//必须按这样的顺序写
//字符串大小写有关的方法
System.out.println(str.toUpperCase());//转换成全大写,给了一个新对象(字符串不可变)
System.out.println(str);
System.out.println(str.toLowerCase());//转换成全小写
//字符串的特殊方法
//1.trim()----专用于去掉字符串的前后空格
StringinputStr = " helloworld ";
System.out.println(inputStr.trim());
正则表达式特点
① 正则表达式本身表现形式上就是一个字符串,即任意一个字符串都是正则表达式。
正则表达式特点
① 正则表达式本身表现形式上就是一个字符串,即任意一个字符串都是正则表达式。
String inputNum = JOptionPane.showInputDialog("输入判断是否为起地区的电话号码");
//1.常用正则表达式不需要去写,网络。2.三种括号①[] 一个方括号代表一个字符,填写的内容为允许填用的符号简写:[a-z A-Z],
//除了都可以填写[^0-9]除了0-9都可以填
//②{}--代表前面正则表达式规则出现的次数,如{2,5}规则最少出现2次,最多出现5次,{2,}最少出现2次,{2}固定出现2次
//?0-1次,+-- 1到任意次 *--0到任意次
//()--代表分组6(57|[0-9]32|....)
Date:/*
* Date使用范围
* 1.获取当前日期时间
* 2.根据要求设计格式化模板显示日期时间
*/
//时间本质是按毫秒数来存的
long mills = System.currentTimeMillis();
System.out.println(mills);
//显示日期
Date now = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String nowValue = df.format(now);
System.out.println(nowValue);
// Clendar用来代替Date,用于设计时间
Calendar cal = Calendar.getInstance();//直接反个对象
cal.set(Calendar.YEAR, 2016);
cal.set(Calendar.MONTH, 2016);
cal.getTime();//用Date的formate输出
String year0 = JOptionPane.showInputDialog("输入你的年份");
String month0 = JOptionPane.showInputDialog("输入你的年份");
String date0 = JOptionPane.showInputDialog("输入你的年份");
int year = Integer.parseInt(year0);
int month = Integer.parseInt(month0);
int date = Integer.parseInt(date0);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
cal.set(Calendar.DATE, date);
//月份没有数字的概念,下标不是从1开始的,是从0开始的,星期按星期天开始排的,展示用date来展示,设置使用calender
Date birthday = cal.getTime();
System.out.println(df.format(birthday));
long begin = System.currentTimeMillis();
int num = 0;
for (int i = 0; i < 10000000; i++) {
System.out.println(num);
}
long end = System.currentTimeMillis();
System.out.println("Time"+(end - begin));
Integer:包装类
基本类型 包装类
Int Integer
byte Byte
short Short
long Long
float Float
char Character
boolean Boolen
除了存放值之外,还有大量的属性和方法。
在做数据类型转换时用的最多
基本与包装类对象,以及字符串
1. 表示层:1.用户层,2.数据展示
2. 业务层:对项目中整个功能点进行设置
3. 持久层