1.線程之間并沒(méi)有自動(dòng)提供鎖這么一說(shuō),需要使用java中提供的關(guān)鍵字Sychronized、ReentrantLock類等來(lái)實(shí)現(xiàn)線程同步。
2.調(diào)用start方法只會(huì)讓線程進(jìn)入可執(zhí)行狀態(tài),然后CPU會(huì)隨機(jī)調(diào)度可執(zhí)行狀態(tài)下的線程進(jìn)行執(zhí)行。
3.因?yàn)槭嵌嗑€程,可能出現(xiàn)線程1先打印完結(jié)果,在線程1做減法之前,這時(shí)num還沒(méi)有變化,同時(shí)運(yùn)行的線程2打印了相同的結(jié)果。
java代碼執(zhí)行順序,了解過(guò)jvm類加載機(jī)制的應(yīng)該就會(huì)知道,一個(gè)類在加載過(guò)程中會(huì)先加載靜態(tài)的方法和變量,所以上面的代碼最先執(zhí)行的應(yīng)該是static代碼塊,至于這個(gè)mian方法的話我不清楚他和其他的static代碼的加載順序關(guān)系,有不對(duì)的地方還請(qǐng)指出
單純的顏色轉(zhuǎn)換用canvas可以實(shí)現(xiàn)。
但是我覺(jué)得更難的地方在于如何判斷出需要轉(zhuǎn)換的顏色,也就是識(shí)別問(wèn)題。
以你的圖為例,人一眼能看出來(lái)是把路由器的白色變成了其他顏色,可是在實(shí)際代碼中需要有一個(gè)明確的顏色值來(lái)決定是否轉(zhuǎn)換,這個(gè)值不可能是用戶提供的,只能靠自己去判斷,也就是自己去找出這個(gè)白色的顏色值。
可以靠面積,但是這可能跟背景沖突。
可以靠形狀,這樣難度就上升了幾個(gè)數(shù)量級(jí)。
實(shí)際情況中需要替換的顏色不一定是同一個(gè)值,有可能受光照、陰影等影響,會(huì)造成細(xì)微的顏色差別,這也是要考慮的。
完整地把這一套實(shí)現(xiàn)下來(lái),可能就相當(dāng)于一個(gè)小型美顏算法了??雌饋?lái)這也是個(gè)邊角需求,可以去找找開源實(shí)現(xiàn),節(jié)省一些力氣。
解決了, 這里報(bào)錯(cuò)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cxf-org.apache.cxf.spring.boot.autoconfigure.CxfProperties': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/el/ELManager
然后我在項(xiàng)目的pom文件添加如下
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
然后還是不行, 之后找到了原因,由于使用tomcat版本是tomcat7, 所以需要在tomcat的lib下放入javax.el-api-3.0.0.jar這個(gè)jar包, 或者直接使用tomcat8及以上的版本
String regex = "[\\da-zA-z]+";加密算法是不分語(yǔ)言的。嗯,特地寫了下證明這個(gè)問(wèn)題,大膽用吧。
messageSource.setBasename("i18n/validation/message.properties");
改為:
messageSource.setBasename("i18n/validation/message");
代碼確實(shí)有點(diǎn)問(wèn)題,我寫了一個(gè)
const temp = {};
for (item in dateInfo) {
const val = dateInfo[item]
const str1 = item.match(/(\S*)_/)[1];
if (!temp[str1]) {
temp[str1] = {};
temp[str1][item] = val;
} else {
temp[str1][item] = val
}
}
const new_arr = Object.values(temp);
console.log(new_arr);其實(shí)轉(zhuǎn)換一個(gè)思路去問(wèn),結(jié)果馬上就可以找到,這個(gè)就是提取文檔擴(kuò)展名的問(wèn)題。
可以打印一下file,其實(shí)就是一個(gè)js對(duì)象
console.log(document.querySelector('input[type=file]').files[0])$(document).ready(function () {
var $texta = $('#my-textarea');
var lastWidth = localStorage.getItem("my-area-width");
var lastHeight = localStorage.getItem("my-area-height");
if(lastWidth && lastHeight) {
$texta.css("width",lastWidth+"px");
$texta.css("height",lastHeight+"px");
}
$texta.data('x', $texta.outerWidth());
$texta.data('y', $texta.outerHeight());
$texta.mouseup(function () {
var $this = $(this);
var width = $this.outerWidth();
var height = $this.outerHeight();
if (width != $this.data('x') || height != $this.data('y')) {
alert(width + ' - ' + $this.data('x') + '\n' + height + ' - ' + $this.data('y'));
localStorage.setItem("my-area-width",width);
localStorage.setItem("my-area-height",height);
}
$this.data('x', width);
$this.data('y', height);
});
});list.forEach(value -> { System.out.println(value.getClass()) })
不知道是不是你想要的
當(dāng)前問(wèn)題不就說(shuō)你圖表點(diǎn)擊 然后去把右邊的table進(jìn)行過(guò)濾么
你去觸發(fā)api的事件 你得符合它的條件,為什么不換個(gè)思路直接去處理數(shù)據(jù)呢 非得去觸發(fā)它的事件 然后傳入?yún)?shù) 然后去處理你的數(shù)據(jù)么?
兩種方法:
一:正則
(?!<[^>]*)[a][b][c](?![^<]*>)
運(yùn)行結(jié)果:
二:Jsoup 解析 HTML ,寫選擇器遍歷判斷
我更傾向于用第二種方法,因?yàn)檎齽t很難維護(hù)…… 如果以后需要替換別的,還要再研究
經(jīng)過(guò)自己查詢很多文章了解到,flume所支持elasticsearch版本較為落后,如果要想使用flume直接向es傳輸,需要使用低版本的es,而且需要修改jar包中的一些方法。flume的更新速度也遠(yuǎn)不如es的更新速率,所以應(yīng)該選取其它的日志收集策略
.*太多了,算法的時(shí)間太長(zhǎng)
result = re.findall(pattern, content[15000:20000]) # 這個(gè)都是秒級(jí)的了,何況content長(zhǎng)度134383
而且時(shí)間復(fù)雜度非線性 5000長(zhǎng)度,3~4秒 134383長(zhǎng)度,估計(jì)你跑一天能出來(lái)
建議分步正則,一次最好不要超過(guò)兩個(gè).*,一步一步匹配出你要的結(jié)果
也可以把參數(shù)放在hash里
var hash = (location.hash || '').substring(1);
var matchPageNum = hash.match(/page_num=(\d+)/);
if (matchPageNum) {
var matchedNum = parseInt(matchPageNum[1]);
location.hash = hash.replace(/page_num=(\d+)/, 'page_num=' + 5);
} else {
location.hash = hash + (hash ? '&' : '?') + 'page_num=' + 5
}
點(diǎn)擊分頁(yè)的時(shí)候再 location.hash = location.hash.replace(/page_num=(\d+)/, 'page_num=' + 5);
你需要了解下 進(jìn)程間通信 —— 最為一般的方式是使用 Socket(RPC)
主要用在函數(shù)式編程里面,也可用于其他任何合適的地方,目的是將函數(shù)(lambda)作為變量來(lái)傳遞。
至于例子,網(wǎng)上一搜一大把。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。