笔记

finally与return:正常情况下,没有异常时,先执行finally语句,再执行return语句;有异常时,catch里语句执行后,也会执行finally语句,再执行return语句
引用类型存的不是对象本身,存的是内存地址,真正的对象存在内存堆里。
connection的close:关闭放在finally中;finalizes()方法;
流和connection可能没有关闭,会导致项目的运行会越来越慢。

Overload:相同的方法名,不同的参数类型或参数数量。(返回值不同不算)
可变参数和数组:
methodA(int[] a)与methodA(int... a):可变参数就是数组

堆: new的方式存在内存堆里;StringBuffer的append();
常量池:不用new的字符串(直接赋值的字符串)会存储在常量池中
方法区:方法区的常量池;方法存在方法区里面;方法被调用时,方法会被放进本地方法栈中
StringBuffer 类的对象调用toString()方法将转化为Strring类型
字符串是不可变的,每次的修改本质上都是创建了一个副本(再变化)
处理字符串的累加:StringBuffer做字符串的累加append();

堆:
栈:后进先出;(栈底,栈顶,入栈,出栈;弹栈)
队列:先进先出(队头,队尾,出队,入队) :消息机制

*******************************************************************************************************************

Override:(注解)
1、参数列表必须与被重写方法相同
2、返回类型必须与被重写方法的返回类型相同
3、重写方法不能比被重写方法限制有更严格的访问级别
4、不能重写被标识为final的方法
5、重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常
父类的引用可以指向子类的对象

内部类:
1、成员内部类
2、静态内部类
3、匿名内部类:没有类名。
4、局部内部类:放在方法里的,内部类访问局部变量时,局部变量要final修饰。

内部类使用场景:
成员内部类可以解决,当两个接口的方法名相同时,由一个类实现两个接口时,分不清是谁的方法,此时可以用到。
局部内部类要使用外面的局部变量时,则变量必须用final修饰。

内部类优化单例模式:
静态块 static{}
静态内部类封装对象的创建,避免在调用类的其它方法时创建对象

*******************************************************************************************************************

ArrayList与LinkedList:
ArrayList:常说不限制大小,不限制类型(其实不指明类型,使用?范型是不限制类型。最开始有默认的缺省值)
LinkedList:prev,item,next(内存结构是分离的)

Set、List、Map:
ArrayList有序存储、LinkedList:存的对象相同时可以存多次
HashSet无序存储、TreeSet:存的对象只能存一次,相同只能一次(null也只能存一次)
HashMap键值对存储、TreeMap:

java、class:
java文件、(javac)字节码文件、(JVM)机器码文件

采用数组自定义栈结构:
栈的初始大小,

字节流:每次8bit。声音,图片
字符流:每次一个字符,两个字节(双字节)
Serializable内存到硬盘的过程就是转化为二进制的过程,也就是序列化的过程
*******************************************************************************************************************

foreach的循环:
for(int k:arr){
    System.out.println(k);
}
是将循环得到的结果赋值给k,所以循环直接输出k值。
Serializable与Session使用场景:
    实现序列化接口Serializable。
    Seesion的生命周期:实际是浏览器30分钟没与服务器交互,或者调用关闭的方法。
线程的5种状态:
    创建--->就绪(队列,等待CPU执行)--->运行
    运行--->就绪(时间片已到,等待CPU下一次执行)
    运行--->等待(缺少资源,被迫退出)--->就绪(资源满足)
    运行--->结束(正常执行结束,线程会被销毁,资源会被释放)
        等待--->结束(非正常结束)
    等待(可能会死锁)
start与run:
直接调用run方法运行线程,就相当于调用普通方法。如果此时在main中运行,不论同时run多少个线程,
都只是属于main线程。
start:线程已经就绪完毕,随时可以执行,但是否被CPU选中还是要看线程的队列
java并发机制:多线程
垃圾回收机制本质上是一个线程。没有变量调用,则说明该对象是垃圾
虚拟目录:WebRoot是虚拟目录。
Http状态码:404资源请求没找到,200正常,500服务器出错,报异常,302重定向

***********************________--------------------------------------------------------------------------------------------

select MAT_NO_, MAT_DESC_, LARGE_MAT_CAT_CODE_, io.UNIT_, PLANNED_PRICE_
       ,SMALL_CAT_CODE_,SMALL_CAT_VALUE_,
       sum(AMOUNT_) as IN_AMOUNT_,
       PLANNED_PRICE_ * sum(AMOUNT_) as IN_PRICE_
  from DM_MAT_CONTRACT_STOCK_IO io
  right outer join DMV_MAT_STOCK_OUT_BILL b on io.BILL_CODE_ = b.BILL_CODE_ where 1 = 1
group by MAT_NO_, MAT_DESC_, LARGE_MAT_CAT_CODE_, io.UNIT_, PLANNED_PRICE_,SMALL_CAT_CODE_,SMALL_CAT_VALUE_

select * from (select MAT_NO_, sum(AMOUNT_) as IN_AMOUNT_
  from DM_MAT_CONTRACT_STOCK_IO io
  right outer join DMV_MAT_STOCK_OUT_BILL b1 on io.BILL_CODE_ = b1.BILL_CODE_ group by MAT_NO_) a
 left outer join
 (select distinct MAT_NO_, MAT_DESC_, LARGE_MAT_CAT_CODE_, io.UNIT_, PLANNED_PRICE_,SMALL_CAT_CODE_,SMALL_CAT_VALUE_
  from DM_MAT_CONTRACT_STOCK_IO io
  right outer join DMV_MAT_STOCK_OUT_BILL b2 on io.BILL_CODE_ = b2.BILL_CODE_) b
  on a.MAT_NO_ = b.MAT_NO_

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

create database student;
use student
go
create table study(
STUDENT_CODE_ VARCHAR(20),
NAME_ VARCHAR(10),
TERM_ VARCHAR(2),
COURSE_NAME_ VARCHAR(20),
AMOUNT_ INT
)

insert into study values('160101','张宇','1','数学',72);
insert into study values('160101','张宇','1','英语',78);
insert into study values('160101','张宇','1','英语',71);
insert into study values('160101','张宇','1','管理学',75);
insert into study values('160102','杨炎','1','数学',83);
insert into study values('160102','杨炎','1','英语',79);
insert into study values('160102','杨炎','1','管理学',72);
insert into study values('160103','紫玉','1','数学',87);
insert into study values('160103','紫玉','1','英语',93);
insert into study values('160103','紫玉','1','管理学',97);
insert into study values('160103','紫玉','1','运筹学',99);
insert into study values('160101','张宇','2','数学',73);
insert into study values('160101','张宇','2','英语',73);
insert into study values('160101','张宇','2','英语',79);
insert into study values('160101','张宇','2','管理学',76);
insert into study values('160102','杨炎','2','数学',84);
insert into study values('160102','杨炎','2','英语',80);
insert into study values('160102','杨炎','2','管理学',73);
insert into study values('160103','紫玉','2','数学',88);
insert into study values('160103','紫玉','2','英语',94);
insert into study values('160103','紫玉','2','管理学',98);
insert into study values('160103','紫玉','2','运筹学',96);

SELECT * FROM study

select STUDENT_CODE_,COURSE_NAME_, avg(AMOUNT_) from study group by STUDENT_CODE_,COURSE_NAME_

select * from
(select STUDENT_CODE_, avg(AMOUNT_) as RES_ from study group by STUDENT_CODE_) as a
left join (select STUDENT_CODE_,COURSE_NAME_ from study) as b on a.STUDENT_CODE_ = b.STUDENT_CODE_

select * from
(select STUDENT_CODE_, avg(AMOUNT_) as RES_ from study group by STUDENT_CODE_) as a
, (select STUDENT_CODE_,COURSE_NAME_ from study) as b where a.STUDENT_CODE_ = b.STUDENT_CODE_

select STUDENT_CODE_, AMOUNT_ COURSE_NAME_ from study where STUDENT_CODE_ in (
select STUDENT_CODE_, avg(AMOUNT_) as RES_ from study group by STUDENT_CODE_)

原文地址:https://www.cnblogs.com/shinelover/p/5991873.html