MySQL根据出生日期计算年龄
在进行数据库的设计时,往往数据库中存放的是用户信息的出生年月,而不是用户的年龄,通过根据出生日期计算年龄,可以保持用户年龄随着时间的改变而进行实时的更新。
系统当前时间为2017/12/21,根据出生日期计算年龄的SQL语句查询代码如下:
Scanner中的输入
用户可以通过Scanner类中的方法获取用户在控制台输入的数据。通过如下方式:
Scanner sc = new Scanner(System.in);
next nextInt nextLine nextDouble 的区别:
next获取用户输入的字符串,以空格为截止符
nextInt获取用户输入的整形数值,以空格为截止符
nextLinenextInt获取用户输入的字符串,以回车为截止符
nextDouble获取用户输入的double型数值,以空格为截止符:
Scanner sc = new Scanner(System.in);
int test=sc.nextInt();
//输入: 35 输出: 35
String str=sc.next();
//输入: public static void main 输出: public
// String str=sc.nextLine();
//输入: public static void main 输出: public static void main
// double test1=sc.nextDouble();
//输入: 23.31 输出: 23.31
静态static
静态代码块优先于主方法,且只执行一次
被static修饰的语句或者变量有如下特点:
1.随着类的加载而加载
2.优先于对象存在
3.被所有对象所共享
4.可以直接被类名所调用
使用注意:
1.静态方法只能访问静态成员
2.静态方法中不可以写this,super关键字
3.主函数是静态的
多态
对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
多态的3个必要条件:
1.继承 2.重写 3.父类引用指向子类对象。
向上转型: Person p = new Man() ; //向上转型不需要强制类型转化
向下转型: Man man = (Man)new Person() ; //必须强制类型转化
关键的来了,不论向上或者向下转型,都是一句话,“编译看左边,运行看右边”。也就是编译时候,会看左边引用类型是否能正确编译通过,运行的时候是调用右边的对象的方法。
try/catch中的finally
假设利用 return 语句从 try 语句块中退出。在方法返回前,finally子句的内容将被执行。如果 finally 子句中也有一个 return 语句,这个返回值将会覆盖原始的返回值。
HttpServletRequest和HttpServletResponse
HttpServletRequest类主要处理:
- 读取和写入HTTP投标
- 读取和设置cookies
- 读取路径信息
- 表示HTTP会话
HttpServletResponse类主要处理:
1. 设置http头标
2. 设置cookie
3.设置返回数据类型
4. 输出返回数据
Math函数的用法
Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整
Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;
floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;
最难掌握的是round方法,他表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11;
求子串数目
若串S=’software’,其子串数目为(包括空串):37
字符串的子串,就是字符串中的某一个连续片段。截取一个字符串长度需要一个起始位置和结束位置;
计算公式:n(n+1)/2 + 1 此题n=8 ; 8(8+1)/2 +1=37;
final
final修饰类、方法、属性!不能修饰抽象类,因为抽象类一般都是需要被继承的,final修饰后就不能继承了。
final修饰的方法不能被重写而不是重载!
final修饰属性,此属性就是一个常量,不能被再次赋值!