四次挥手

客户端发送释放连接报文,关闭客户端到服务端的数据传输

服务端收到后,发送确认报文给客户端

服务端发送释放连接报文,关闭服务端到客户端的数据传输

客户端发送一个确认报文给服务端

----------------------------------------------------------------

UDP和TCP区别

TCP:

可靠,传输大小无限制,连接需要建立时间,开销大
UDP:

不可靠,传输大小在64K以下,不需要简历连接,开销小

----------------------------------------------------------------

视图:

集合几张表的数据,字段来自一个或多个数据库的表。

触发器:
不能直接调用执行,通过数据库相关表实现级联更改,

当有操作影响到触发器保护的数据时,触发器自动发生。

项目中要慎用触发器,滥用会导致数据库难以维护。

存储过程:
将常用的或很复杂的工作,预先用sql语句写好并用指定名称存储起来,

以后要调用相同服务时,直接execute即可。

进行了预编译,不用每次编译,提高了数据库的执行速度。

----------------------------------------------------------------

JVM五大空间

Java栈,

存放快速执行的任务,基本数据类型的引用,和对象的引用.

(递归函数如果没有退出,就会溢出,发生在Java栈)

线程隔离
本地方法栈,保存native方法进入区域的地址.

线程隔离

堆,new 出来的类对象(留意垃圾回收器)

线程共享

寄存器,保存下一条将要执行的指令地址.

线程隔离

方法区,又叫静态区,存放所有的类,静态变量,静态方法,常量区.

线程共享
java栈和本地方法栈的区别?

-------------------------------------------------------------------------

java为什么能跨平台?

编译器先将java源程序编译生成.class文件,

再由虚拟机对字节码解释执行成相应平台的机器语言,

这个过程由类加载器完成。不同平台有不同的JVM,一次编译,多处运行。

-------------------------------------------------------------------------

反射机制?
一种机制,能在运行时获取类的基本信息.,调用对象的属性,方法.

获取Class对象?Class的forName()全限定名,类.getClass(),类.class

----------------------------------------------------------------

TCP的跨平台?
它是传输层协议,封装了windows和linux的底层函数

----------------------------------------------------------------

工厂模式和抽象工厂模式的区别

1:工厂方法模式
一个抽象产品类,

可以产生出多个具体产品类。
一个抽象工厂类,可以产生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。

--------------------------------------------------------------------------------

2:抽象工厂模式
多个抽象产品类,每个抽象产品类可以产生出多个具体产品类。

一个抽象工厂类,可以产生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。

--------------------------------------------------------------------------------

JDBC步骤
1.加载数据库驱动

2.通过DriverManager获取数据库链接

3.通过Connection对象创建Statement对象

4.
查:
增删改:

5.关闭数据库会话close()

-------------------------------------------------------------------------

序列化和反序列化
将对象转换为字节流保存起来,在以后根据保存的信息,

在内存重新创建一个对象

1 类实现Serializable

2序列化 ObjectOutputStream os
os.writeObiect()

3反序列化 ObjectInutStream oi
oi.readObject()

4 static的变量不能被序列化

5不想 被序列化 就加transient

6增加成员变量的话 把versionid写死强制和另一个一样,那么就会增加成员变量给它个初始值

--------------------------------------------------------------------------------

IO流
IO流三种解码方式

1,string:new string(byte[ ],字符集)
byte[] getbytes(字符集)

2,转换流 inputStreamReader(inputStream,字符集)
outputStreamReader(outputStream,字符集)
3 Scanner(inputStream,字符集)
只可以读

为什么记事本写代码可以编译?

事本存的内容就是写入的字符内容,比如写入‘a’就是编码97,
但是比如word写代码就不能编译

,因为word是带有格式的,存储的时候除了字符内容外还存储了格式内容。

(eclipse虽然也有颜色,但是并未存储这些信息,只是在显示的时候取出内容判断关键字后显示出来)

字节流和字符流:

字节流与字符流的区别

操作代码的不同之外

字节流在操作的时候本身是不会用到缓冲区(内存)的,

是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的

字节流在操作文件时,即使不关闭资源(close方法),

文件也能输出,
但是如果字符流不使用close方法的话,

则不会输出任何内容,
说明字符流用的是缓冲区

,并且可以使用flush方法强制进行刷新缓冲区,

这时才能在不close的情况下输出内容

那开发中究竟用字节流好还是用字符流好呢?

字节流和字符流默认都是采用与操作系统相同的编码格式,

对于windows下文本文件的读写,有时为了解决汉字显示的乱码问题,

在所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,

包括图片也是按字节完成,而字符是只有在内存中才会形成的,

所以使用字节的操作是最多的。

如果要java程序实现一个拷贝功能,应该选用字节流进行操作(可能拷贝的是图片),

并且采用边读边写的方式(节省内存)。

------------------------------------------------------------------------------------------------

论述什么是MVC架构,并结合你熟悉的一种MVC架构进行阐述其工作原理?

Mvc架构是一种框架模式,有三个模,模型,视图,控制器。Sping mvc

,前端控制器(DispatcherServlet)接受用户的请块求。处理器映射器(HandelMapping)根据url不同去找不同的的处理器。

处理器(Handle)处理业务逻辑。

处理器适配器(Handle Adapter)

把处理器包装成适配器。视图解析器(View)进行视图解析,

处理并解析成相应页面。

mvc好处:
能做到代码重用
分层架构的设计,

易于维护和扩展
更好的分工,程序员可以专注于自己擅长的领域

----------------------------------------------------------------

业务层:面向接口编程()
持久层ORM
业务板块为什么要先写个接口

,写一些方法,在业务中重写这些方法?
spring IOC 实现代码的解耦,

创建对象不用每次new一个对象,交给spring容器创建和托管。

Resource是 j2ee自动装配的注解, 先按名,再按类型

。autowire是spring自动装配的注解,可以指定类型

----------------------------------------------------------------

get post 区别

get,post都是提交方式。get在请求头里面,数据量有限。

post放在请求体里面,不受限制。

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用


然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)

服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,

POST 比 GET 更稳定也更可靠

----------------------------------------------------------------

那每次request请求Servlet都会经历一次生命周期吗?

不会,第一次发出请求时,服务器会创建一个servlet实例,
调用servlet的init方法,

如果服务器已经存在一个servlet实例,那就直接使用这个实例;

然后调用service方法。
当server退出,或者reload时,此servlet会被distory

----------------------------------------------------------------

request和session的区别
生命周期不一样,request在一次请求完毕或者获取参数结束后,

就会被释放,占用资源少,相对安全。

session的生命周期在一个会话内,在这个绘画内,session一直存在,

差不多半个小时左右会被释放,占用资源大,可以实现会话跟踪,相对不怎么安全。

----------------------------------------------------------------

SqlSessionFactory
是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像.

SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,

每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心.

同时SqlSessionFactory也是线程安全的,SqlSessionFactory一旦被创建,

应该在应用执行期间都存在.在应用运行期间不要重复创建多次,建议使用单例模式.SqlSessionFactory是创建SqlSession的工厂.

----------------------------------------------------------------

SqlSession
是MyBatis的关键对象,是执行持久化操作的独享,类似于JDBC中的Connection.

SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法,
它的底层封装了JDBC连接,可以用SqlSession实例来直接执行被映射的SQL语句.
每个线程都应该有它自己的SqlSession实例.

SqlSession的实例不能被共享,
同时SqlSession也是线程不安全的,

使用完SqlSeesion之后关闭Session很重要,应该确保使用finally块来关闭它.

----------------------------------------------------------------

数据库连接池的用处
在JDBC编程中,每次创建和断开 connection对象都会消耗一定的时间和IO资源。

频繁地创建,断开数据库会影响数据库的访问效率,甚至导致数据库崩溃。

数据库连接池负责分配,管理和释放数据库连接,
允许应用程序重复使用现有的数据库连接,而不是重新建立。

要考虑多线程问题,用synchronized。用栈,队列。

----------------------------------------------------------------

JSP
动态网页技术,基于servlet,最终转换成servlet。

里面主要重写service方法:所有html文件out出来,所有java代码执行。

属于服务端脚本,在服务端执行。回传到浏览器的是html文件。jsp文件名就作为这个servlet的url。

----------------------------------------------------------------

cookie
cookie是把少量的信息存储在用户自己的电脑上,它在一个域名下是一个全局的,

只要设置它的存储路径在域名www.a.com下 ,那么当用户用浏览器访问时,就可以从这个域名的任意页面读取cookie中的信息。

这种方案很不错,也很快速方便,但是由于cookie 是存在用户端,

而且它本身存储的尺寸大小也有限,最关键是用户可以是可见的,并可以随意的修改,很不安全。

----------------------------------------------------------------

session
在一次会话中解决2次HTTP的请求的关联,让它们产生联系,

让2两个页面都能读取到找个这个全局的session信息。session信息存在于服务器端,

所以也就很好的解决了安全问题。

----------------------------------------------------------------

Session如何工作
有了Session ID,

服务端就可以创建HttpSession对象了,第一次触发通过request.getSession()方法。

如果当前的Session ID还没有对应的HttpSession对象,那么就创建一个新的,并将这个对象加到sessions容器中保存。

Manager类将管理所有Session的声明周期,Session过期将被回收,服务器关闭,Session将被序列化到磁盘等。

只要这个HttpSession对象存在,用户就可以根据Session ID来获取这个对象

----------------------------------------------------------------

session的销毁?

//第一种方法:调用invalidate()方法直接销毁
session.
invalidate();

//第二种方法:调用setMaxInactiveInterval()方法设置超时,参数单位秒

session.setMaxInactiveInterval(600);

//第三种方法:在web.xml中初始化servlet时添加超时参数,单位是秒

Example

com.*.*.Example

timeout

600

//第四种方法:在web.xml中添加超时配置,单位是分钟

10

//第五种方法:重启服务器。

//第六种方法:关闭浏览器,等待其自动销毁。

----------------------------------------------------------------

COOKIE和SESSION有什么区别?

cookie保存在客户端,session保存在服务器端,
cookie目的可以跟踪会话,

也可以保存用户喜好或者保存用户名密码
session用来跟踪会话

-------------------------------------------------------------------------

J2EE
三大组件:sevelt,filter,listener.
servelt用的较多,

filter现多用于编码
servlet继承HTTPServlet,HTTPServletRequest,HTTPServletResponse,

生命周期:init,service,distory
service: doget,dopost都在里面。

URL真正把请求发送给server
@webServlet自动配置
web.xml手动配置:给webserver用,

主要配置首页,servlet,filter,listener
一个servlet对应一个业务,servlet适合单例模式
filter:webserver接收到请求,

优先查过滤器,然后查servlet。多用于编码转换;

解决请求体的内容
listener:监听session的生命周期,监听在线人数的统计。
servlet为什么能够实现动态网页技术?

servlet处理完请求后,可以动态输出一个html文件。

-------------------------------------------------------------------------

面向对象设计的七大原则
单一职责原则(Single Responsibility Principle):

每一个类应该专注于做一件事情。

里氏替换原则(Liskov Substitution Principle):

超类存在的地方,子类是可以替换的。

依赖倒置原则(Dependence Inversion Principle):

实现尽量依赖抽象,不依赖具体实现。

接口隔离原则(Interface Segregation Principle):

应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。

迪米特法则(Law Of Demeter):又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。

开闭原则(Open Close Principle):

面向扩展开放,面向修改关闭。

组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP):尽量使用组合/聚合达到复用,尽量少用继承。

原则: 一个类中有另一个类的对象。

-------------------------------------------------------------------------

请求转发和重定向有何异同?
forword请求转发:客服端只有一次请求

,服务端将请求转发给另一个服务端,并可以增加数据,更加高效。

url不变
sendredict重定向:相当于客户端发送了两次请求,服务端将资源给客户端,

客户端再次请求,无法增加数据,低效。url变化

-------------------------------------------------------------------------

mybatis.xml
扫描与自动装配。
配置数据源,创建sqlSessionFactory,
指定mybatis的配置文件(别名),扫描映射接口

-------------------------------------------------------------------------

不用第三个数值交换两数值

public class Demo8 {
public static void main(String[] args){
int x=1;int y=2;x=x+y;y=x-y;x=x-y;//
y=1,x=2
}
} -

------------------------------------------------------------------------

java四大引用

强引用


只要引用存在,垃圾回收器永远不会回收
Object obj = new Object();

//可直接通过obj取得对应的对象 如obj.equels(new Object());

而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,

这也是我们经常所用到的编码形式

软引用:
非必须引用,内存溢出之前进行回收,

可以通过以下代码实现
Object obj = new Object();
SoftReference sf = new SoftReference(obj);
obj = null;
sf.get();//有时候会返回null
这时候sf是对obj的一个软引用,通过sf.get()方法可以取到这个对象,当然,当这个对象被标记为需要回收的对象时,则返回null;
软引用主要用户实现类似缓存的功能,在内存足够的情况下直接通过软引用取值,无需从繁忙的真实来源查询数据,提升速度;当内存不足时,自动删除这部分缓存数据,从真正的来源查询这些数据

弱引用:
第二次垃圾回收时回收,可以通过如下代码实现
Object obj = new Object();
WeakReference wf = new WeakReference(obj);
obj = null;
wf.get();//有时候会返回null
wf.isEnQueued();//返回是否被垃圾回收器标记为即将回收的垃圾
弱引用是在第二次垃圾回收时回收,短时间内通过弱引用取对应的数据,可以取到,当执行过第二次垃圾回收时,将返回null。
弱引用主要用于监控对象是否已经被垃圾回收器标记为即将回收的垃圾,可以通过弱引用的isEnQueued方法返回对象是否被垃圾回收器标记。

虚引用:
垃圾回收时回收,无法通过引用取到对象值,可以通过如下代码实现
Object obj = new Object();
PhantomReference pf = new PhantomReference(obj);
obj=null;
pf.get();//永远返回null
pf.isEnQueued();//返回是否从内存中已经删除
虚引用是每次垃圾回收的时候都会被回收,通过虚引用的get方法永远获取到的数据为null,因此也被成为幽灵引用。
虚引用主要用于检测对象是否已经从内存中删除
-------------------------------------------------------------------------

-------------------------------------------------------------------------

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

如果您希望通过 GET 方法发送信息,请向 URL 添加信息:
xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
xmlhttp.send();

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。
然后在 send() 方法中规定您希望发送的数据
-------------------------------------------------------------------------

事务的基本要素
1)原子性(Atomic):事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败;
2)一致性(Consistent):事务结束后系统状态是一致的;
3)隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态;
4)持久性(Durable):事务完成后所做的改动都会被持久化,即使发生灾难性的失败。
通过日志和同步备份可以在故障发生后重建数据。

事务的并发问题
  1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

  2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,
对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。
  3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,
但是系统管理员B就在这个时候插入了一条具体分数的记录,
当系统管理员A改结束后发现还有一条记录没有改过来,
就好像发生了幻觉一样,这就叫幻读。
  小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。
解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

-------------------------------------------------------------------------
一. 什么是死锁?

????
如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,
若无外力他们将无法推进,这种情况就是死锁

二. 死锁产生的原因?

1.因竞争资源发生死锁?现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象

(1)可剥夺资源和不可剥夺资源:可剥夺资源是指某进程在获得该类资源时,该资源同样可以被其他进程或系统剥夺,不可剥夺资源是指当系统把该类资源分配给某个进程时,不能强制收回,只能在该进程使用完成后自动释放??

(2)竞争不可剥夺资源:系统中不可剥夺资源的数目不足以满足诸进程运行的要求,则发生在运行进程中,不同的进程因争夺这些资源陷入僵局。

举例说明:? 资源A,B; 进程C,D

资源A,B都是不可剥夺资源:一个进程申请了之后,不能强制收回,只能进程结束之后自动释放。内存就是可剥夺资源

进程C申请了资源A,进程D申请了资源B。

接下来C的操作用到资源B,D的资源用到资源A。但是C,D都得不到接下来的资源,那么就引发了死锁。

(3)竞争临时资源

2.进程推进顺序不当发生死锁

?

三. 产生死锁的四个必要条件?

(1)互斥条件:进程对所分配到的资源不允许其他进程进行访问,若其他进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源

(2)请求和保持条件:进程获得一定的资源之后,又对其他资源发出请求,但是该资源可能被其他进程占有,此事请求阻塞,但又对自己获得的资源保持不放

(3)不可剥夺条件:是指进程已获得的资源,在未完成使用之前,不可被剥夺,只能在使用完后自己释放

(4)环路等待条件:是指进程发生死锁后,必然存在一个进程--资源之间的环形链

?

四. 处理死锁的基本方法

1.预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件

2.避免死锁:在资源分配过程中,使用某种方法避免系统进入不安全的状态,从而避免发生死锁

3.检测死锁:允许死锁的发生,但是通过系统的检测之后,采取一些措施,将死锁清除掉

4.解除死锁:该方法与检测死锁配合使用

-------------------------------------------------------------------------
-------------------------------------------------------------------------

JDBC如何执行事务
先把setAutoCommit置为false,最后再置为true
-------------------------------------------------------------------------
-------------------------------------------------------------------------
如何解决高并发问题

1.HTML静态化,效率高,消耗小适用于频繁使用数据库查询但是内容更新很小的应用,避免大量的数据库访问请求。
2.图片服务器分离,图片是最消耗资源的,将图片与页面进行分离采用独立的图片服务器,降低服务器的压力,保证系统不会因为图片问题崩溃。
3.数据库集群和库表散列,mysql提供了master和slave方案,但是数据库集群在架构,成本,扩张性收到DB类型的限制 ,采用库表散列市更高效的解决方案,对不同的业务,功能进行数据库分离,不同的模块对应不同的数据库和表,低成本的提高性能,并且有很好的扩展性。
4.缓存,更高效的存取。
5.镜像,提高性能和数据安全性。
6.负载均衡,解决高负荷访问和大量并发请求。
-------------------------------------------------------------------------
-------------------------------------------------------------------------
sleep和wait?
他们都可以使线程等待

区别:
最大的区别,sleep没有释放锁,wait释放了锁;
sleep属于Thread的方法,wait属于Object的方法
sleep作用在任意位置,wait只能用在同步方法和同步代码块里
sleep需要捕获异常,wait不需要

简单介绍一下http协议

简单介绍一下socket

小菜鸟之JAVA面试题库1的更多相关文章

  1. 2017年java面试题库【归类篇】

    一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4. ...

  2. java面试题库(长期)

    本文内容来自互联网各种面试实例,以及自己的面试经历,主要是中级开发的面试题 初中级java面试主要分为几个部分: 0.序 1.java基础 2. java多线程 3. jvm知识 4. spring等 ...

  3. 小菜鸟之java内存结构

    JVM启动流程: JVM基本结构图: <深入理解Java虚拟机(第二版)>中的描述是下面这个样子的: Java中的内存分配: Java程序在运行时,需要在内存中的分配空间.为了提高运算效率 ...

  4. Java面试题库及答案解析

    1.面向对象编程(OOP)有哪些优点? 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码的可理解性. 2.面向对象编程有哪些特性? 封装.继承.多态.抽象 封装 封装 ...

  5. Java笔试题库之选题题篇【1-70题】

    1.下面中哪两个可以在A的子类中使用:( ) class A { protected int method1 (int a, int b) { return 0; } } A. public int ...

  6. Java笔试题库之选题题篇【141-210题】

    141.Struts框架可以支持以下哪种程序开发语言? A.C B.C++ C.Java D.C# 解答:C 142.在Servlet处理请求的方式为. A.以进程的方式 B.以程序的方式 C.以线程 ...

  7. Java笔试题库之选题题篇【71-140题】

    71下面哪几个函数是public void method(){̷}的重载函数?() A.public void method( int m){̷} B.public int method(){̷} C ...

  8. 小菜鸟之java基础

    1. javac 命令的作用: javac 编译器解析 Java 源代码,并生成字节码文件的过程 2. java为什么可以跨平台: ava有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚 ...

  9. 小菜鸟之JAVA输入输出

    Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观 ...

随机推荐

  1. JQuery调用绑定click事件的3种写法

    第一种方式: $(document).ready(function(){ $("#clickme").click(function(){ alert("Hello Wor ...

  2. 51 Nod 1272 简单思维题

    1272 最大距离  题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给出一个长度为N的整数数组A,对于每一个数组元素 ...

  3. K8S中DaemonSet

    DaemonSet DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这些 Pod ...

  4. DOM访问关系(父节点 子节点)

    把下面的知识点掌握了,可以做一下下面的案例,都是工作中常用的,很有用 知识点   1.带Eleent和不带区别     a)带Element的获取的是元素节点     b)不带Element的获取文本 ...

  5. 0.2 IDEA配置

    一.IDEA配置maven 在启动配置设置清理方式:clean jetty:run maven版本以及本地setting和repository JRE版本以及编码格式:-Dfile.encoding= ...

  6. HTTP服务器(2)

    import socket import re import multiprocessing def service_client(new_socket): """为这个 ...

  7. tomcat 配置域名部署war 项目

    第一步把打包好的war包 放到 tomcat目录下的webapps 下 截图: 第二步:找到tomcat目录下的server.xml配置文件 server.xml在conf文件夹下面 编辑server ...

  8. C++入门经典-例7.5-对象的指针,函数指针调用类成员

    1:指向相应对象的指针就是对象的指针,它的生明方法与其他类型一样,如下: 类名 *p; 类的指针可以调用它所指向对象的成员.形式如下: p->类成员; 2:代码如下: (1)cat.h #inc ...

  9. ajax-php跨域请求

    php: function __construct(){ // 指定允许其他域名访问 header("Access-Control-Allow-Origin: *"); heade ...

  10. hibernate映射配置

    1. 普通字段类型 2. 主键映射 单列主键映射 多列作为主键映射 主键生成策略,查看api:   5.1.2.2.1. Various additional generators 数据库: Q:一个 ...