水仙花数:
/**
* 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,
* 其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",
* 因为153=1的三次方+5的三次方+3的三次方。
*
* @param args
*/
public static void main(String[] args) {
System.out.println("2.打印出所有的 '水仙花数':");
for (int s = 100; s < 1000; s++) {
//存百位 153/100=1
int s1 = s / 100;
//存十位s2=s%100/10 /153%100=53/10=5
int s2 = (s - 100 * s1) / 10;
//存个位s3=s%10 /153%10=3
int s3 = (s - 100 * s1 - 10 * s2);
if (s1 * s1 * s1 + s2 * s2 * s2 + s3 * s3 * s3 == s) {
System.out.print(s + "\t");
}
}
System.out.println();
}
结果
斐波那契数列:1、1、2、3、5、8…
public static void main(String[] args) {
System.out.println("请输入一个正整数:");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
for (int i = 1; i < input; i++) {
System.out.print(Fibonacci(i) + "\t");
}
}
public static int Fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1 || n == 2) {
return 1;
} else {
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
线程的几种状态
- 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
- 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。
线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。- 阻塞(BLOCKED):表示线程阻塞于锁。
- 等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。
- 超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。
- 终止(TERMINATED):表示该线程已经执行完毕
mybatis是怎么插入数据的
先写dao层的接口,再写映射文件,在映射文件daoMapper.xml里,mapper命名空间为dao全类名,在
<insert ></insert>
标签里写映射插入语句。并且id属性为dao层接口名,parameterType属性为插入entity实体类。
mybatis如何防止SQL注入
使用#{…}代替¥{…}
使用预处理 PreparedStatement(就是上面的方法)
使用正则表达式过滤掉字符中的特殊字符。
ajax的异常处理
通过ajax请求里的error函数,alert弹出异常。