1、三个表 语文成绩比数学高的
select * from student a,
(select * from sc where cid = (select cid from source where name=‘语文’ )) b,
(select * from sc where cid =(select cid from source where name=‘数学’ )) c
where a.sid=b.sid and b.sid=c.sid and b.score>c.score
2、单例
//饿汉式
/*private final static Singleton ss=new Singleton();
private Singleton(){}
public static Singleton getss(){
return ss;
}*/
//懒汉式
private final static Singleton ss=null;
private Singleton(){}
public static Singleton getss(){
if(ss==null){
synchronized(Singleton.class){
if(ss==null){
return new Singleton();
}
}
}
return ss;
}
3.jvm加载class的机制
整个JVM 分为四部分:
1)Class Loader 类加载器(将class从硬盘加载到内存)
Class Loader 只管加载,只要符合文件结构就加载,至于说能不能运行,则不是它负责的,那是由Execution Engine 负责的。
2) Execution Engine 执行引擎
执行引擎也叫做解释器(Interpreter) ,负责解释命令,提交操作系统执行。
3)Native Interface 本地接口
它的具体做法是Native Method Stack 中登记native 方法,在Execution Engine 执行时加载native libraies 。
4)Runtime data area 运行数据区
运行数据区是整个JVM 的重点。
类装载方式两种
1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中,
2.显式装载, 通过class.forname()等方法,显式加载需要的类
4、静态方法 非静态方法 构造方法
static{
System.out.println("父类静态");
}
public hellofa(){
System.out.println("父类构造方法");
}
{
System.out.println("父类非静态方法");
}
static{
System.out.println("子类静态");
}
public helloson(){
System.out.println("子类构造方法");
}
{
System.out.println("子类非静态方法");
}
不创建实例,只执行静态代码块
5,事务的acid
原子性
一致性
隔离型
持久性
6、xss sql csrf攻击
xss攻击,一般js攻击,弄筛选器,将特殊字符过滤
sql注入,预编译
CSRF攻击: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。
7、spring注入方式
①xml配置申明注册。然后setter、构造器、工厂方法注入;②注解方式申明注册,然后是注解方式注入