java 考试重点_JAVA复习重点知识

1.sql顺序

顺序4:SELECT *(all),列名,运算符,distinct(除去重复记录)

顺序1:FROM 表名,视图,别名

顺序2:WHERE 条件表达式

顺序3:GROP BY 列名 having 条件表达式

顺序5:ORDER BY 列名 asc(默认升序)desc(降序)

2.位运算符号

按位与运算符(&)

参加运算的两个数,按二进制位进行“与”运算。

运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)

即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1。

按位或运算符(|)

参加运算的两个数,按二进制位进行“或”运算。

运算规则:参加运算的两个数只要两个数中的一个为1,结果就为1。

即 0 | 0= 0 , 1 | 0= 1 , 0 | 1= 1 , 1 | 1= 1 。

例:2 | 4 即 00000010 | 00000100 = 00000110 ,所以2 | 4的值为 6 。

异或运算符(^)

参加运算的两个数,按二进制位进行“异或”运算。

运算规则:参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

即 0 ^ 0=0 , 0 ^ 1= 1 , 1 ^ 0= 1 , 1 ^ 1= 0 。

例: 2 ^ 4 即 00000010 ^ 00000100 =00000110 ,所以 2 ^ 4 的值为6

总结:

& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1

^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1

~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0

<< 左移 用来将一个数的各二进制位全部左移N位,右补0

>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

3.数组常用方法:

数组填充:

Arrays.fill(数组名,值)

Arrays.fill(数组名,开始下标,结束下标,值)

数组复制:

Arraycopy(数组a,开始复制下标,复制到数组b,开始复制下标,复制长度)

数组比较:

Arrays.equals(数组1,数组2)

数组排序:

Arrays.sort(数组)或者Arrays.sort(数组开始下标,数组结束下标)

数组中搜索指定元素

binarySearch(数组,指定元素)

binarySearch(数组,开始位置,结束位置,指定元素)

数组转化为字符串:

toString(数组类型,数组名)

4.字符串常用方法:

https://blog.csdn.net/xupt_rl/article/details/89474033

split()分割字符串返回字符串数组

trim()去除左右两端空格

5.Cookie规范:

Cookie大小上限4KB

一个服务器最多在客户端浏览器上保存20个Cookie

一个浏览器最多保存300个CookieCookie是通过HTTP

请求和响应头在客户端和服务器端传递的

6.JSP入门

6.1:java Server Pages是javaweb服务器端的动态资源,他与HTML

页面的作用是相同的,显示数据 和获取数据

6.2:JSP=html+Java脚本(代码片段)+JSP动态标签

6.3:JSP脚本就是java片段

分为3种:

:java语句

:java表达式// 与out.print()功能相同,向客户端输出

:java定义类成员

6.4原理:

是特殊的Servlet,当jsp页面首次被访问时,容器Tomcat会先把

jsp编译成Servlet,然后再去执行Servlet

7.Cookie概述

Cookie在HTTP中他表示服务器送给客户端浏览器的Cookie,就是

一个键和一个值构成的,随着服务器端的响应送给客户端浏览器,

然后客户端浏览器会把Cookie保存起来,当下一次再访问的时候

把Cookie再发送给服务器

Cookie是由服务器创建,然后通过响应发送给客户端的一个键值对,

客户端会保存Cookie,并会标注出Cookie的来源(哪个服务器的Cookie)

当客户端向服务器发送请求时会把所有这个服务器Cookie包含在请求中

发送给服务器,这样服务器就可以识别客户端了。

8.进程和线程

8.1:进程包括线程,程序执行状态叫进程,线程可以共享资源,一旦出现

共享资源,必须注意线程安全

8.2:分类:

守护线程:典型就是垃圾回收GC

用户线程:当JVM中都是守护线程,当前JVM将退出

8.3线程继承的两种方式:

1.继承Thread类,重写其中run方法,

完成了两步:启动子线程,调用子线程的run方法

2.实现了Runnable接口,实现其中的run方法,但是源码没有start方法

需要自己手动写Thread 线程名=new Thread(new出来的类名),然

后再调用这个线程的start方法才能启动线程

3.线程安全:

资源共享的操作会出现线程安全问题,比如售票问题

解决方法:让同一时刻共享数据操作的线程减少为有且只有一个

3.1同步代码块

synchronized(同步监视器,即锁){需要被同步的代码}

3.2同步方法

只有实现方式的线程可以用,继承方式的线程不可以用

4.死锁问题

产生:不同线程分别占用对方需要的同步的资源,都在等待双方

放弃同步资源

9.线程通信

5.1:wait()挂起当前线程并放弃CPU资源,使其他线程可以访问共享资源

而当前线程重新排队等待资源访问的机会

5.2:notify()唤醒正在排队中优先级最高的线程,结束等待

5.3:notifyall()唤醒所有正在排队的线程,通常可用在共享资源操作

10.单例模式

1.主要有两种:懒汉式单例,饿汉式单例

2.单例模式有以下特点:

2.1:单例类只能有一个实例

2.2:单例类必须自己创建自己的唯一的实例

2.3:单例类必须给所有其它对象提供这一实例

例子:

懒汉式//在第一次调用的时候才会实例化自己

public class Singleton{

private Singleton(){}

private static Singleton single=null;

//静态工厂方法

public static Singleton getInstance(){

if(single==null){

single=new Singleton();

}

return Single;

}}

11.框架各个包或者类含义

dao:数据访问层,操作数据库,实现增删改查

jdbc:客户端如何访问数据库的应用程序接口

pojo:数据对象(实体)

service:业务逻辑,事务管理

dao层:dao层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查

service层:service层叫服务层,被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种操作封装起来。

至于为什么service层要使用接口来定义有以下几点好处:

在java中接口是多继承的,而类是单继承的,如果你需要一个类实现多个service,你用接口可以实现,用类定义service就没那么灵活

要提供不同的数据库的服务时,我们只需要面对接口用不同的类实现即可,而不用重复地定义类

编程规范问题,接口化的编程为的就是将实现封装起来,然调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想。

Servlet:控制层,接收请求和向客户端响应的中间层,servlet是一种服务器端的java应用程序

他往往用来处理请求的。他的外一层就是View、他的一层就是Service(Servlet往往调用他做逻辑判断的操作)

原始的Servlet的生命周期

servlet在第一次访问的时候就会被初始化

servlet对象一旦被创建就会驻留在内存中,当服务器关闭或者web应用被e69da5e6ba903231313335323631343130323136353331333332633065移除的时候servlet对象才销毁

1:当servlet被创建的时候那么 servlet就会被初始化 调用init方法

2:任何请求来自客户端,service方法就会被自动调用

3:当servlet从服务器被移除的时候 distroy方法将会被调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值