线程javascript
1 new Thread(new Runnable() { 2 3 @Override 4 5 public void run() { 6 7 System.out.println("Before Java8, too much code for too little to do"); 8 9 } 10 11 }).start();
new Thread(){ 2 3 @Override 4 5 public void run() { 6 7 System.out.println("Before Java8, too much code for too little to do"); 8 9 }}.start();
JVM原理php
JVM->java虚拟机,解释器,负责将程序员编写的.java文件编译为多平台通用的字节码(.class)文件,最终将字节码解释给计算机执行html
[JVM内存区域主要划分为“线程共享区”“非线程共享区”,好比,Method Area(方法区,non-heap)与Heap(堆),Direct Memory(运行时数据区域)是线程共享的,VM Stack(java方法栈,虚拟机栈),Native Method Stack(本地方法栈)和Program Counter Register(程序计数器)是非线程共享的]前端
post ,get 请求的区别?
get:url参数可见,不安全,长度受限,url可传播
post:url参数不可见,安全,长度不受限,url不可传播
solr和es的区别
solr(与zeekper配合才能分布式,建索引慢,检索快),电商数据稳定,不须要快速更新索引,查询多;
Es(更适合分布式,建索引块,查询稍微慢),社交网站,构建索引块,发帖后别人能够最快时间搜索到
先后端交互的形式,单点登陆怎么实现的?
先后端交互方式:ajax
什么是单点登陆?
单点登陆(Single Sign On),简称为 SSO,
是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只须要登陆一次就能够访问全部相互信任的应用系统。
单点登陆实现:
登陆成功后保存token到redis并返回给前端,前端会附加在下次请求的http头(header)中以供服务器验证
访问每一个请求时,先从header中获取token,再根据token获取User信息,若是User不为null,则证实token没有失效,可继续访问
当token即将过时时,进行token置换,在新token存入redis以前,为老token续java
outMemeryError是什么异常,产生异常的缘由
内存不足、内存溢出错误
缘由:
检查代码中是否有死循环或递归调用。
检查是否有大循环重复产生新对象实体。
检查对数据库查询中,是否有一次得到所有数据的查询。通常来讲,若是一次取十万条记录到内存,就可能引发内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引发内存溢出。所以对于数据库查询尽可能采用分页的方式查询。
检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
启动参数内存值设定的太小,对tomcat容器,能够在启动时对jvm设置内存限度。对tomcat,能够在catalina.bat中添加:
set CATALINA_OPTS=-Xms128M -Xmx256M
set JAVA_OPTS=-Xms128M -Xmx256M
什么是跨域?怎么解决跨域问题? https://www.cnblogs.com/zhaosq/p/10511633.html
跨域,指的是浏览器不能执行其余网站的脚本。
它是由浏览器的同源策略形成的,
是浏览器对JavaScript施加的安全限制。
所谓同源是指,域名,协议,端口均相同,不明白不要紧,举个栗子:
http://www.123.com/index.html 调用 http://www.123.com/server.PHP (非跨域)
http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不一样:123/456,跨域)
http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不一样:abc/def,跨域)
http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不一样:8080/8081,跨域)
http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不一样:http/https,跨域)
请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。
解决跨域(由前端人员来解决):
好比:jsonp跨域
JSONP(JSON with Padding:填充式JSON),应用JSON的一种新方法,
JSON、JSONP的区别:
一、JSON返回的是一串数据、JSONP返回的是脚本代码(包含一个函数调用)
二、JSONP 只支持get请求、不支持post请求
(相似往页面添加一个script标签,经过src属性去触发对指定地址的请求,故只能是Get请求)
jquery实现:
<script type="text/javascript">
$.ajax({
type: "get",
async: false,
url: "http://localhost:8546/Service.ashx",
dataType: "jsonp",
success: function (data) {
alert(data);
},
error: function () {
alert('fail');
}
});
</script>
jdk1.8新特性
一、接口中能够写方法体,使用default关键字
public interface NewCharacter {
public void test1();
public default void test2(){
System.out.println("我是新特性1");
}
}
二、Lambda 表达式
interface MathOperation{ int operate(int a,int b) }
调用:
MathOperation plus=(a,b)->a+b
sout(plus.operate(1,2))
三、函数式接口:“函数式接口”是指仅仅只包含一个抽象方法的接口
@FunctionalInterface
public interface MyLamda {
public void test1(String y);
//这里若是继续加一个抽象方法便会报错
//public void test1();
}
看一下这个接口的调用,符合lambda表达式的调用方法
MyLamda m = y -> System.out.println("ss"+y);
jquery