綜合面試題

線程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(程序計數器)是非線程共享的]前端

 

  1. 工做過程

     

     

     

     

  2. JVM運行時初始分配方法區與堆,遇到線程時,分配程序計數器,虛擬機棧,本地方法棧,線程終止時,三者的內存空間會被釋放(生命週期==所屬線程生命週期)這也是爲何GC機制只會發生在「線程共享區」的緣由。

 

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

相關文章
相關標籤/搜索