兩種方法
1.找到那個x按鈕,觸發(fā)他的點擊事件,這種方式比較low
2.通過控制file-list這個屬性,把file-list設置為[]
這是thymeleaf 2的bug ,升級到thymeleaf 3可以解決此bug;
thymeleaf2的時候是自己處理的json;
thymeleaf3使用的jackson,jackson可以通過使用@JsonIgnoreProperties和@JsonIgnore注解解決 兩個類互相引用的問題
如果排序涉及的數(shù)據(jù)量很大,那么肯定是交給數(shù)據(jù)庫比較好。因為排序的最終目的是分頁輸出,數(shù)據(jù)庫可以使用索引來更快的達到這一目的。
在類中dispatch要從this.props拿到
同理,你在handleClickLi直接形參解構(gòu)是拿不到dispatch的
第二段代碼改為
render() {
const { dispatch } = this.props;
const _self = this;
return (
<div className={'login_div'}>
<div
className={'login_button'}
onClick={() => this.handleClickLi(dispatch(beginToLogin('Coffee 500gm', 1, 250)))}
>
登陸
</div>
</div>
)
}之前剛開始看 實在是太笨了 太不好意了
redux-thunkredux-sagadva
這三個組件有使用其一么?
如果沒感覺應該使用的是redux-thunk。
有興趣可以研究一下dva,很是強大。
這個應該是你maven庫里的jar損壞了,國內(nèi)下載這些庫文件容易下載不全,刪除重新下載一下應該就可以了。
不需要插件,只要監(jiān)聽touch相關事件就可以了吧。
我覺得難點在于如何判斷手機類型是安卓還是IOS,單純用UA檢測可能不太好,試試讓原生開發(fā)給你個接口,根據(jù)返回的數(shù)據(jù)判斷吧。
還有就是不知道你說的左劃禁言是不是像QQ那種會劃出一個按鈕,抽屜式的。如果是的話我覺得跟安卓的頁面就不統(tǒng)一了。
環(huán)境變量path,修改為1.6的版本路邊bin下就可以了
volatile僅保證可見性。這個可見性是針對讀取操作來說的,所以你說的情況完全有可能發(fā)生。
之所以會這樣,是因為對個線程并發(fā)對同一個變量進行修改時,除了可見性,還必須保證修改過程是原子的,修改過程包括讀、自增、寫三步。
所以你這種情況,如果把inc換成AtomicInteger就沒問題了。
如果你的10個線程中,只有1個線程會修改inc變量,另外9個線程都只是讀取,那么就可以使用volatile,它會保證這9個線程每次讀到的都是最新的inc值。
1) 看下這個https://benchmarksgame-team.p...,這個基本上Cpp無一落敗
2) 除了-O2外,還有-O3,還有其他的編譯參數(shù),請參見GCC手冊
3) JVM默認是用空間換時間的,所以這么對比不是很適合
你的代碼,我在未優(yōu)化一行代碼的情況下,使用-O3來測試(實際上release都是-O3),運算3次都比Java快,這中間還包括加載程序啟動的時間,怎么得出結(jié)論會比java慢呢。
當然,C++對程序員要求很高,不了解內(nèi)存模型、編譯原理什么的,是很難寫出高質(zhì)量的C++的,在這一點上,java就好很多
最近買了一個樹莓派3B+,特意跑了下這個程序,從性能上看,C++比java在Arm上略快,優(yōu)勢不明顯,另外寫了一個rust版本的代碼,算法上未優(yōu)化,性能跟C++接近,在release情況下比Java略快。
fn main() {
let input_num=100001;
let mut pp_count =0;
for each in 2..input_num {
let mut factorization_lst=0;
for factor in 1..each+1 {
if each%factor==0 &&!(factor>each/factor) {
factorization_lst += 1;
}
}
if factorization_lst==1
{
let mut antitone =0;
let mut each_cpy =each;
while each_cpy != 0
{
antitone=antitone*10+each_cpy%10;
each_cpy/=10;
}
if antitone==each
{
pp_count += 1;
println!("{}:{}", pp_count, each);
}
}
}
}
從CPU上來,基本上在運行期這3個程序都是跑滿單核的(樹莓派3B+有4個core),但內(nèi)存上來看,C++和rust有明顯優(yōu)勢,大概為java版本的1/10.
這個測試從測試結(jié)果來看,這幾個語言的運行性能差異沒那么大,分析了下有幾個原因
1) 對于int數(shù)據(jù)類型,在java C++ rust里都是原生類型,原生的在計算時差別不大,對于java來說,如果是Integer可能有性能損耗。
2) 只跑了一個核,沒有多核之間的數(shù)據(jù)傳遞等
3) 沒有用到遞歸、值傳遞、引用傳遞、值拷貝等特性,差異不大。
結(jié)論: java是一個性價比比較好的語言,運行性能上或許不是最優(yōu),但開發(fā)效率很好,不像其他的語言要考慮跨平臺移植問題、編譯參數(shù)問題等。
PS 未來看好rust
const reg = /([^_]*)_/g;
const str = "asdfasfdasdf safdas09########@asdfasdfasdfasdf_~@##~~!~!";
const result = str.match(reg); // ["asdfasfdasdf safdas09########@asdfasdfasdfasdf_"]前端不需要配置Java環(huán)境,弄個開發(fā)或者測試服務器,開發(fā)階段前端請求測試服務器的接口就好了。
試試看 Apache James
又到了自問自答環(huán)節(jié) 前幾天沒連vpn 翻不了墻 進入help網(wǎng)站后 下個chorme idea插件就能解決了
子模塊可以打成jar包,把頁面等靜態(tài)資源放到META-INF/resources目錄下. 需要注意的這是servlet 3.0標準的一項內(nèi)容. 你的應用也要放到支持servlet 3.0的容器才行(如tomcat 7以上的版本).
具體做法可以用maven的assembly插件.
參考我的的assebly.xml文件:
<assembly>
<id>bin</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>/</outputDirectory>
<excludes>
<exclude>**</exclude>
</excludes>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>target/classes</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/*.class</include>
</includes>
<excludes>
<exclude>**/DefaultController.class</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>WebContent</directory>
<outputDirectory>META-INF/resources</outputDirectory>
<includes>
<include>/WEB-INF/jsp/**</include>
</includes>
</fileSet>
<fileSet>
<directory>WebContent</directory>
<outputDirectory>META-INF/resources</outputDirectory>
<includes>
<include>js/**</include>
<include>plugins/**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
相應的在pom.xml里
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
打好包的jar會多一個bin的修飾符, 這個才是你要發(fā)布的jar, 別的模塊引用時,也要把修飾符帶上
<dependency>
<groupId>com.example</groupId>
<artifactId>myplugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<classifier>bin</classifier>
</dependency>
$表示字符串的結(jié)尾,是特殊字符,使用RegExp的時候,需要使用兩個\\轉(zhuǎn)義:
const template = "the age of ${name} is ${age}";
const data = { name: "xiaoming", age: 8};
console.log(render(template, data));
// 輸出: "the age of xiaoming is 8"
function render(template,data) {
for (key in data) {
if(key) {
console.log(key);
var re = new RegExp("\\${"+key+"}");
// var re = "${" + key + "}"; // 這塊直接使用字符串就行,不用正則也可以
console.log(re,data[key]);
template = template.replace(re,data[key]);
// console.log("test:",template.replace("${name}","xiaoming"));
console.log(template);
}
}
}估計是webpack的babel配置的問題
/*
* Amount2RMB.java 2008-6-15
*/
package test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Amount2RMB {
private static final Pattern AMOUNT_PATTERN =
Pattern.compile("^(0|[1-9]\\d{0,11})\\.(\\d\\d)$"); // 不考慮分隔符的正確性
private static final char[] RMB_NUMS = "零壹貳叁肆伍陸柒捌玖".toCharArray();
private static final String[] UNITS = {"元", "角", "分", "整"};
private static final String[] U1 = {"", "拾", "佰", "仟"};
private static final String[] U2 = {"", "萬", "億"};
/**
* 將金額(整數(shù)部分等于或少于12位,小數(shù)部分2位)轉(zhuǎn)換為中文大寫形式.
* @param amount 金額數(shù)字
* @return 中文大寫
* @throws IllegalArgumentException
*/
public static String convert(String amount) throws IllegalArgumentException {
// 去掉分隔符
amount = amount.replace(",", "");
// 驗證金額正確性
if (amount.equals("0.00")) {
throw new IllegalArgumentException("金額不能為零.");
}
Matcher matcher = AMOUNT_PATTERN.matcher(amount);
if (! matcher.find()) {
throw new IllegalArgumentException("輸入金額有誤.");
}
String integer = matcher.group(1); // 整數(shù)部分
String fraction = matcher.group(2); // 小數(shù)部分
String result = "";
if (! integer.equals("0")) {
result += integer2rmb(integer) + UNITS[0]; // 整數(shù)部分
}
if (fraction.equals("00")) {
result += UNITS[3]; // 添加[整]
} else if (fraction.startsWith("0") && integer.equals("0")) {
result += fraction2rmb(fraction).substring(1); // 去掉分前面的[零]
} else {
result += fraction2rmb(fraction); // 小數(shù)部分
}
return result;
}
// 將金額小數(shù)部分轉(zhuǎn)換為中文大寫
private static String fraction2rmb(String fraction) {
char jiao = fraction.charAt(0); // 角
char fen = fraction.charAt(1); // 分
return (RMB_NUMS[jiao - '0'] + (jiao > '0' ? UNITS[1] : ""))
+ (fen > '0' ? RMB_NUMS[fen - '0'] + UNITS[2] : "");
}
// 將金額整數(shù)部分轉(zhuǎn)換為中文大寫
private static String integer2rmb(String integer) {
StringBuilder buffer = new StringBuilder();
// 從個位數(shù)開始轉(zhuǎn)換
int i, j;
for (i = integer.length() - 1, j = 0; i >= 0; i--, j++) {
char n = integer.charAt(i);
if (n == '0') {
// 當n是0且n的右邊一位不是0時,插入[零]
if (i < integer.length() - 1 && integer.charAt(i + 1) != '0') {
buffer.append(RMB_NUMS[0]);
}
// 插入[萬]或者[億]
if (j % 4 == 0) {
if (i > 0 && integer.charAt(i - 1) != '0'
|| i > 1 && integer.charAt(i - 2) != '0'
|| i > 2 && integer.charAt(i - 3) != '0') {
buffer.append(U2[j / 4]);
}
}
} else {
if (j % 4 == 0) {
buffer.append(U2[j / 4]); // 插入[萬]或者[億]
}
buffer.append(U1[j % 4]); // 插入[拾]、[佰]或[仟]
buffer.append(RMB_NUMS[n - '0']); // 插入數(shù)字
}
}
return buffer.reverse().toString();
}
public static void main(String[] args) {
// log4j?
System.out.println("壹萬陸仟肆佰零玖元零貳分".equals(convert("16,409.02")));
System.out.println("壹仟肆佰零玖元伍角".equals(convert("1,409.50")));
System.out.println("陸仟零柒元壹角肆分".equals(convert("6,007.14")));
System.out.println("壹仟陸佰捌拾元叁角貳分".equals(convert("1,680.32")));
System.out.println("叁佰貳拾伍元零肆分".equals(convert("325.04")));
System.out.println("肆仟叁佰貳拾壹元整".equals(convert("4,321.00")));
System.out.println("壹分".equals(convert("0.01")));
System.out.println(convert("1234,5678,9012.34")
.equals("壹仟貳佰叁拾肆億伍仟陸佰柒拾捌萬玖仟零壹拾貳元叁角肆分"));
System.out.println(convert("1000,1000,1000.10")
.equals("壹仟億零壹仟萬零壹仟元壹角"));
System.out.println(convert("9009,9009,9009.99")
.equals("玖仟零玖億玖仟零玖萬玖仟零玖元玖角玖分"));
System.out.println(convert("5432,0001,0001.01")
.equals("伍仟肆佰叁拾貳億零壹萬零壹元零壹分"));
System.out.println(convert("1000,0000,1110.00")
.equals("壹仟億零壹仟壹佰壹拾元整"));
System.out.println(convert("1010,0000,0001.11")
.equals("壹仟零壹拾億零壹元壹角壹分"));
System.out.println(convert("1000,0000,0000.01")
.equals("壹仟億元零壹分"));
}
}
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。