線程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