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

鍍金池/ 問答/ Java問答
心夠野 回答

阿里云遷移過了,用新版的阿里云demo就行了

尤禮 回答

spring boot并不需要顯示指定@ComponentScan

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {

    @Test
    public void contextLoads() {
    }
}

可以參考spring boot示例代碼

有問題再反饋吧

尛憇藌 回答

1.手機(jī)短信驗(yàn)證碼存放到 redis里,設(shè)置失效時(shí)間,一般5分鐘比較合適
2.通過設(shè)置圖片驗(yàn)證碼來達(dá)到防轟炸的效果,比如同一用戶獲取驗(yàn)證碼次數(shù)超過三次,彈出圖形驗(yàn)證碼。

心上人 回答

服務(wù)提供者。
微服務(wù)架構(gòu)中會(huì)涉及到多個(gè)服務(wù)間的調(diào)用。一個(gè)服務(wù)的不可用可能會(huì)引起整個(gè)系統(tǒng)的級(jí)聯(lián)故障。熔斷器就是放在各個(gè)服務(wù)間的一個(gè)保護(hù)者,用來保護(hù)服務(wù)高可用的。

?表示前面的內(nèi)容匹配0或者1次,在(https?|ftp|file):后面添加?,表示前面的內(nèi)容出現(xiàn)0次或者1次都可以,也就是說url中可以有協(xié)議,也可以沒有協(xié)議:

(?:(https?|ftp|file):)?//[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

不知道你是不是在js里面使用,如果是在js中,這兩個(gè)//是需要轉(zhuǎn)義的:

let reg = /(?:(https?|ftp|file):)?\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/
故人嘆 回答

代碼中有很多問題,基本上思路就是錯(cuò)的。1,讀文件有問題,txt2String中System.lineSeparator()應(yīng)該加s后面。2,分割字符串有問題,count函數(shù)str.split("b");未考慮其它分隔符的情況,正確的做法是用正則表達(dá)式str.split("\s");。3,初始化后,list.size()=0,當(dāng)然不會(huì)進(jìn)入循環(huán)。

如果只想要代碼的話看這里,java 字符串詞頻統(tǒng)計(jì)實(shí)例代碼
下面代碼是連接中的內(nèi)容

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
public class WordsStatistics { 
 
    class Obj { 
        int count ; 
        Obj(int count){ 
            this.count = count; 
        } 
    } 
 
    public List<WordCount> statistics(String word) { 
        List<WordCount> rs = new ArrayList<WordCount>(); 
        Map <String,Obj> map = new HashMap<String,Obj>(); 
 
        if(word == null ) { 
            return null; 
        } 
        word = word.toLowerCase(); 
        word = word.replaceAll("'s", ""); 
        word = word.replaceAll(",", ""); 
        word = word.replaceAll("-", ""); 
        word = word.replaceAll("\\.", ""); 
        word = word.replaceAll("'", ""); 
        word = word.replaceAll(":", ""); 
        word = word.replaceAll("!", ""); 
        word = word.replaceAll("\n", ""); 
 
        String [] wordArray = word.split(" "); 
        for(String simpleWord : wordArray) { 
            simpleWord = simpleWord.trim();  
            if (simpleWord != null && !simpleWord.equalsIgnoreCase("")) { 
                Obj cnt = map.get(simpleWord); 
                if ( cnt!= null ) { 
                    cnt.count++; 
                }else { 
                    map.put(simpleWord, new Obj(1)); 
                } 
            } 
        } 
 
        for(String key : map.keySet()) { 
            WordCount wd = new WordCount(key,map.get(key).count); 
            rs.add(wd); 
        } 
 
        Collections.sort(rs, new java.util.Comparator<WordCount>(){ 
            @Override
            public int compare(WordCount o1, WordCount o2) { 
                int result = 0 ; 
                if (o1.getCount() > o2.getCount() ) { 
                    result = -1; 
                }else if (o1.getCount() < o2.getCount()) { 
                    result = 1; 
                }else { 
                    int strRs = o1.getWord().compareToIgnoreCase(o2.getWord()); 
                    if ( strRs > 0 ) { 
                        result = 1; 
                    }else { 
                        result = -1 ; 
                    } 
                } 
                return result; 
            } 
 
        }); 
        return rs; 
    } 
 
 
    public static void main(String args[]) { 
        String word = "Pinterest is might be aa ab aa ab marketer's dream  - ths site is largely used to curate products " ; 
        WordsStatistics s = new WordsStatistics(); 
        List<WordCount> rs = s.statistics(word); 
        for(WordCount word1 : rs) { 
            System.out.println(word1.getWord()+"*"+word1.getCount()); 
        } 
    } 
 
} 
臭榴蓮 回答

不傳比較嚴(yán)謹(jǐn),這個(gè)JS也容易控制的,

let url = ''
const id_data = `id=${id}`
const name_data = name_data = `name=${name}`;
const age_data = age_data = `age=${age}`;
Boolean(name_data) && Boolean(age_data) && url = `biz?${id_data}?${name_data}?${age_data}`;
Boolean(name_data) && Boolean(!age_data) && url = `biz?${id_data}?${name_data}`;
Boolean(!name_data) && Boolean(age_data) && url = `biz?${id_data}?${age_data}`;

乞許 回答

問題描述不清楚

[[1,2,3],['a','b','c'],['A','B','C']]

[[1,2,3],['a','b','c'],['A','B']]

[[1,2],['a','b','c'],['A','B','C']]

[[1,2,3],['a',['x','y'],'c'],['A','B','C']]
初念 回答

數(shù)組下標(biāo)越位,去到提示的行數(shù)找找原因

離夢 回答

只要在一個(gè)事務(wù)里哪怕是不同庫里的操作,都是一起成功或一起失敗。

為什么不自己試試呢?

set autocommit = 0;
update db1.t1 set c1='test' where id = 1 ;
select sleep(3);
update db2.t1 set c1='test' where id = 1;/*db2.t1表故意不要?jiǎng)?chuàng)建c1列制造錯(cuò)誤*/
select sleep(3);
commit;
互擼娃 回答

參數(shù)里已經(jīng)制定了參數(shù)的類型,肯定是反射而成啊。

假灑脫 回答

這是一個(gè)坑
xml模板不能有空格,清除掉就可以了

微信官方文檔給的模板有空,但沒有做提示。

孤毒 回答

這是一個(gè)閉包的問題,這樣解決

...
def wrapper(i):
    def add_fun(self):
        return self.num + i
    return add_fun
setattr(..., wrapper(i), ...)
...
歆久 回答

這是thymeleaf 2的bug ,升級(jí)到thymeleaf 3可以解決此bug;

thymeleaf2的時(shí)候是自己處理的json;
thymeleaf3使用的jackson,jackson可以通過使用@JsonIgnoreProperties和@JsonIgnore注解解決 兩個(gè)類互相引用的問題

你好,以上的問題在并發(fā)下出現(xiàn)了共享變量不可見的問題,synchronized和volatile都是為了保護(hù)多線程的安全,synchronized具有原子性和可見性,而volatile只有可見性,上面出現(xiàn)接受循環(huán)是因?yàn)槌霈F(xiàn)了線程交叉,volatile不能保證原子性,多線程間共享變量的可見性是其安全的保障。如下圖
圖片說明

1、把工作內(nèi)存A中更新過的共享變量刷新到主內(nèi)存中
2、將主內(nèi)存中最新的共享變量的值更新到工作內(nèi)存B中
而在期間不允許其他線程去更新最新的共享變量,但我們的代碼去發(fā)生了,第一個(gè)線程的判斷執(zhí)行過程中,第二線程對(duì)共享變量(普通變量)進(jìn)行了賦值修改,當(dāng)我使用synchronized重新運(yùn)行以上方法時(shí)(synchronized互斥加鎖解鎖),如下代碼

private static int num = 0;
    private static int volatileNum = 0;

    public static void main(String[] args) {
        new Thread(){
            public synchronized void run(){
                System.out.println("開始循環(huán)");
                while(num==0&&volatileNum ==0){
                    //System.err.println("--");
                }
                System.out.println("結(jié)束循環(huán)");
                System.exit(0);
            }
        }.start();

        new Thread(){
            public synchronized void run(){
                try {
                    Thread.sleep(1500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("開始賦值");
                num = 1;
            }
        }.start();
    }

其運(yùn)行結(jié)果就依然是無限循環(huán),因?yàn)閟ynchronized保證了單線程中的num與volatileNum其獲取時(shí)是主內(nèi)存的最新值,并在運(yùn)行沒有結(jié)束時(shí)不會(huì)推送更新到主存儲(chǔ)中,線程二更新后對(duì)于第一次獲取到值的判斷線程而言還沒有獲取到num的最新值,不過我發(fā)現(xiàn)一個(gè)有趣的問題,在while中寫入System.out.println(num);后,即使是synchronized下,程序也結(jié)束了循環(huán),但是如果while中沒有任何執(zhí)行代碼則會(huì)一直循環(huán)下去。
這讓我有一個(gè)奇怪的想法:我修改了一下代碼

while (true){
        if(num==0&&volatileNum ==0){
            System.err.println("繼續(xù)循環(huán)");
        }else if(num==1&&volatileNum ==0){
            System.out.println("結(jié)束循環(huán)");
            System.exit(0);
        }
    }

其結(jié)果是在賦值時(shí),結(jié)束了循環(huán),即賦值線程更新num變量后,推送到主內(nèi)存中,而判斷線程也獲取到了最新的num變量。且這時(shí)取出synchronized對(duì)其也沒有過多影響。將volatileNum重新加volatile后的結(jié)果也是一樣的。

多線程真的很有趣,我發(fā)現(xiàn)我還要去在了解一下,如果你有新的看法也可以告訴我。我不認(rèn)為我回答的就是正確的。
你可以看看我最近寫的兩個(gè)文章,我想聽聽你的意見。
【Java貓說】Java多線程之內(nèi)存可見性(上篇)
【Java貓說】Java多線程之內(nèi)存可見性(下篇)

舊言 回答

在mian.js添加以下代碼

Vue.prototype.print = (obj,type) => {
  type = type || "log";
  const log = JSON.parse(JSON.stringify(obj));
  console[type](log)
}

以后打印變量使用

this.print(obj)

不需要對(duì)下載鏈接進(jìn)行斷言,你也可以在點(diǎn)擊按鈕之后,過一段時(shí)間檢測文件是否保存到本地磁盤

念初 回答
  1. vue是幫你把當(dāng)前vue實(shí)例的methods,created等里面的直接this處理成了當(dāng)前vue實(shí)例,可是你的this是回調(diào)函數(shù)的呀(回調(diào)函數(shù)里的this應(yīng)該是你作為bus的vue實(shí)例,應(yīng)該是在$on的時(shí)候做了處理,就像jquery的事件綁定會(huì)幫你處理this一樣)。
  2. _uid是vue實(shí)例的編號(hào),每個(gè)實(shí)例都有,不重復(fù)。