在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Java問答
兔囡囡 回答

為何非要這么啟動,用service manager管理不好嗎?操作系統(tǒng)自帶,絕對官方最佳實踐。

service vsftpd start
我以為 回答

1.0版本

function jsonToQuery(json) {
    let result = [];
    for (let key in json) {
         result.push(key + '=' + json[key]);
    }
    return result.join('&');
};

2.0版

function jsonToQuery(json, replace){
let result = [];
replace = replace || function(value){
    return value;
}

for(let key in json){
    let item = json[key];

    result.push(key + '=' + replace(json[key]));
}
return result.join('&');

}

伴謊 回答
  1. BootstrapClassLoader:只能用于加載JDK核心類庫,系統(tǒng)變量為sun.boot.class.path下面的類。該目錄下的%JAVA_HOME%/jre/lib/下的resources.jar;rt.jar等核心類庫,該loader底層采用C++編寫,自然你也就不能調用啦。
  2. ExtClassLoader :用于加載一些擴展類,系統(tǒng)變量為java.ext.dirs中的類。作用:加載開發(fā)者自己擴展類。
  3. AppClassLoader:用于加載用戶類,這個就是java.class.path下的類,也就是我們自己編寫出來的類。

其中這三個加載器順序為BootstrapClassLoader>ExtClassLoader>AppClassLoader,為啥要這樣設計?主要是為了擴展與安全。首先你將BootstrapClassLoader作為一個核心類加載器,只加載核心類,不與其他耦合在一起。并且為何要設計這三個加載器,就應該和雙親委派機制放在一起了。

何為雙親委派機制:簡單來說就是當你需要加載類的時候,必須從頂級父加載器先加載,如果父加載不了,則交給子加載器。就相當于小孩子要做決定的時候,要先問問父親怎么做。

為什么要有這種雙親委派機制:

  1. 保證唯一性:試想,如果沒有雙親委派模型而是由各個類加載器自行加載的話,如果用戶編寫了一個java.lang.Object的同名類并放在ClassPath中,多個類加載器都去加載這個類到內存中,系統(tǒng)中將會出現(xiàn)多個不同的Object類,那么類之間的比較結果及類的唯一性將無法保證.
  2. 保證安全:由于所有的用戶類都會先通過bootstrapclassloader 查看里面有沒有該類資源,有則直接安徽或者加載,從而保證了底層的類一定是預先加載的,這樣可以對虛擬機的安全得到了很好的保證。
枕邊人 回答

參考官方文檔

public static ExecutorService newFixedThreadPool(int nThreads)
創(chuàng)建一個線程池, 在重用共享無界隊列中運行的固定線程數(shù)。在任何時候, nThreads 個線程都將是活動的處理任務。如果在所有線程都處于活動狀態(tài)時提交了其他任務, 則它們將在隊列中等待, 直到線程可用為止。如果由于在關閉前執(zhí)行過程中出現(xiàn)故障而終止了任何線程, 則如果需要執(zhí)行后續(xù)任務, 則新項將取代它。池中的線程將存在, 直到顯式關閉為止。

可以用下面的程序測試

import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;

public class ThreadPoolTest1 {
    
    static class MyTask implements Runnable {
        private String name;
        
        public MyTask(String name){
            this.name = name;
        }

        
        @Override
        public void run() {
            for (int i = 0; i < 2; i++) {
                // 做點事情
                try {
                    Thread.sleep(100);
                    if(System.currentTimeMillis() % 3 == 0 ){
                         System.out.println("stop!");
                         throw  new RuntimeException("break!"); //(1)注釋掉這一行將只有兩個Thread!
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(name + " said:" + i+" Thread="+Thread.currentThread().getName());
            }
        }
    }

    
    public static void main(String[] args) {
        // 創(chuàng)建線程池
//        ExecutorService threadPool = Executors.newSingleThreadExecutor();
        ExecutorService threadPool = Executors.newFixedThreadPool(2);
//        ExecutorService threadPool = Executors.newCachedThreadPool();

        
        // 向線程池里面扔任務
        for (int i = 0; i < 10; i++) {
            threadPool.execute(new MyTask("Task" + i));
        }

        
        // 關閉線程池
        threadPool.shutdown();
    }
}

注釋掉(1)處的異常會得到正常結果

Task0 said:0 Thread=pool-1-thread-1
Task1 said:0 Thread=pool-1-thread-2
Task0 said:1 Thread=pool-1-thread-1
Task1 said:1 Thread=pool-1-thread-2
Task2 said:0 Thread=pool-1-thread-1
Task3 said:0 Thread=pool-1-thread-2
Task2 said:1 Thread=pool-1-thread-1
Task3 said:1 Thread=pool-1-thread-2
......

任務將在thread 1和2之間切換
拋出異常RuntimeException會看到如下的情況:

.......
java.lang.RuntimeException: break!
    at ThreadPoolTest1$MyTask.run(ThreadPoolTest1.java:22)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Task4 said:0 Thread=pool-1-thread-5
Task5 said:0 Thread=pool-1-thread-6
......

能看到線程池在不斷創(chuàng)建新的線程.

檸檬藍 回答

添加:

h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
雅痞 回答

jsonify封裝的內部指定了content_type為application/json(mimetype參數(shù))。

蝶戀花 回答

你需要多觀察是一直持續(xù)升高,還是升高到一定程度又會下降(垃圾回收是定時性的,不是實時性的)

愛礙唉 回答
var o={
        "A": {
            "a1": 1,
            "a2": 2
        },
        "B": {
            "b": 3
        },
        C:{
            a:1,
            b:{
                c:2
            }
        }
    }
    var comType=['object','array'];
    function plat(o,prekey,resobj){
        prekey=prekey?prekey+'.':'';
        var keys=Object.keys(o);
        keys.forEach(function(item){
            var v=o[item];
            var type=typeof v;
            if(v && comType.indexOf(type) != -1){
                plat(v,prekey+item,resobj);
            }else{
                resobj[prekey+item]=v;
            }
        })
    }
    var result={};
    plat(o,'',result);
    console.log(result);
祉小皓 回答

不實際刪除 做一個狀態(tài) 指示是否顯示,刪除只更新這個數(shù)值。 然后后臺只傳會顯示的留言?

不二心 回答

.frm是描述了表的結構,.MYD保存了表的數(shù)據(jù)記錄,*.MYI則是表的索引

用好搜索引擎,走遍天下都不怕

來守候 回答

ES6:

        const ah = ['a', 'b'];
        const bh = [1, 3, 'a', '6', 'b', 8];
        const h = (arga, argb) => arga.map(v => {
            return { val: v, index: argb.findIndex(val => val === v) }
        })

        console.log(h(ah, bh))

不知道你要得到什么結果

溫衫 回答

找到原因了,F(xiàn)TP服務器是在Linux系統(tǒng)下搭建的,有 . 和 ..兩個文件,后續(xù)邏輯判斷導致異常,但是沒拋出異常,這個異常我自己處理了 哭笑~

風畔 回答

<?php

//final防止類被繼承
final class DBHelper{
    //初始化實例 含義:$install = new DBHelper()...
    private static $instance=null;
     
    //構造器私有,防止類外部實例化
    private function __construct(){
        //連接數(shù)據(jù)庫操作
    }
     
    //獲取實例
    public static function getInstance(){
        if(!(self::$instance instanceof self)){
            self::$instance=new self;
        }
         
        return self::$instance;
    }
     
    //防止實例被克隆
    private function __clone(){
    }
     
}    
     
 

?>

參考:http://blog.51cto.com/phpme/2...

眼雜 回答

參考spring 默認使用java動態(tài)代理 但是代理類需要實現(xiàn)接口 如果為實現(xiàn)接口采用aspectJ進行實現(xiàn)動態(tài)代理

夏木 回答

第一個找不到模塊的問題,你用 WebStorm 的話就不會報這個了
第二個,你照它說的設置什么選項刪除該警告就行了

澐染 回答

Java 是面向對象的語言,所以各種語法都無法脫離 而存在,而看問題也要透過現(xiàn)象看到本質:

對于 TestLambda4 lambda4 = TestLambda2::test1 這個方法引用,你可以理解為:

TestLambda4 lambda4 = str -> TestLambda2.test1(str);

而對于 Lambda 表達式,雖然底層實現(xiàn)和匿名內部類有區(qū)別,但是在語法功能上,二者是完全一致的,即可以把上面的 Lambda 理解為:

TestLambda4 lambda4 = new TestLambda4() {

    @Override
    public String test111(String s) {
        return TestLambda2.test1(s);
    }
    
};
無標題 回答

java 類的元數(shù)據(jù)在內存只存在一份,放在 Permanent Generation space 中,反射出來的方法、字段也只有一份。

純妹 回答

int a = 3的結果:變量a的值為3。

String s = "hello world"的結果:s的值為右邊字符串對象在內存中的地址。

如果你了解C/C++,那么換句話說,基本類型的變量是一個普通變量,對象類型的變量是一個指針變量。有本質不同。

在java中,泛型只是一種表象,或者叫語法糖,它底層是一個Object,而Object是一個指針變量,無法賦值為普通變量。(c/c++支持指針運算,但Java不支持)

淚染裳 回答

其實這就是一個典型的粘包、拆包的問題。

導致的原因就是因為 TCP 是流式的,就像水流一樣沒法知道一段完整的報文到哪里是截止的。

報文越長就越可能出現(xiàn)這樣的問題。

文中提到的其實是按照字節(jié)長度來防止拆包,常見的還有通過分隔符,比如知道讀取到指定的分隔符才算做是獲取到了完整的報文。

這些其實 Netty 都是有內置的處理器。