Java基础知识点
0 内存分配
Xms:初始内存大小 -Xmx:最大内存大小 -Xmn:年轻代大小
java -Xms13000m -Xmx13000M -version 爆了
Tomcat设置,Linux写法:
JAVA_OPTS=" -Xms8192m -Xmx8192m -XX:PermSize=2048M -XX:MaxNewSize=2048m -XX:MaxPermSize=2048m "
Win写法:
set "JAVA_OPTS= -Xms4096m -Xmx4096m -XX:PermSize=2048M -XX:MaxNewSize=2048m -XX:MaxPermSize=2048m "
1 字符串与数值转换
int转String :
String s = String.valueOf(i);
String s = Integer.toString(i); // 只产生一个对象
String s = i + "";
char[]转String:
str = String.valueOf(charArray);
String[]转String
StringUtils.join(strArray, ","); // 将数组用逗号分隔变成字符串
StringUtils.join(null) = null // 用org.apache.commons.lang.StringUtils
StringUtils.join([]) = ""
StringUtils.join([null]) = ""
StringUtils.join(["a", "b", "c"]) = "abc"
StringUtils.join([null, "", "a"]) = "a"
String[] str = { "1", "2", "a", "b" };
List转String[]
String[] array = list.toArray(new String[list.size()]);
List转String
str = StringUtils.join(list.toArray(), ",");
String转int(Double、Float、Long):
int i = Integer.parseInt("123");
int i = Integer.valueOf("123").intValue();
String转char[]:
char[] charArray = str.toCharArray();
String转String[]
array = str.split(""); // String型的数组
String.split("\."); // 特殊,转义字符,必须加"\"(“.”和“|”都是转义字符)
String.split("\|");
string.split("and|or");
"aaa\bbb\bccc".split("\\");
String转byte[]
byte[] stringArr = string.getBytes();
String[]转List
List<string> list = Arrays.asList(stringArray);</string>
字符串去空格
String.trim() // 去掉首尾空格
str.replace(" ", ""); // 去掉所有空格,包括首尾、中间
replaceAll(" ","");
List和Array转换:https://www.cnblogs.com/happyPawpaw/archive/2012/10/22/2734140.html
List转换为Array可以这样处理:
ArrayList<String> list=new ArrayList<String>();
String[] strings = new String[list.size()];
list.toArray(strings);
反过来,如果要将数组转成List怎么办呢?如下:
String[] s = {"a","b","c"};
List list = java.util.Arrays.asList(s);
2 Java运行jar命令提示没有主清单属性
解决这个问题的方法就是要在MANIFEST.MF文件中添加一个入口类。
Main-Class: gui 这里的gui是你的xxx.java文件编译后的xxx.class文件稍微名称。但是不要加.class后缀。
2.1 Intellij idea导出带有main方法的jar包,并且可以执行的方法
File→Project Structure...→Artifacts→+→jar→From modules with .... → 选择一个要执行的main方法,选好后,点击确定→ OK
然后点击Build → Build Artifacts 选择刚才创建的Artifacts,这时候去到project下去搜*.jar,就是你的项目名称,找到后用winrar打开。删除META-INF目录下的除了mainfest.mf,zigbert.rsa以外的其他所有文件,有的时候没有zigbert.rsa,没关系,只留下一个mainfest.mf就好了,这时候查看一下mainfest.mf文件内,有没有Main-Class:属性,如果没有就加上Main-Class: 带main方法的类,然后回车,保存。这时候jar包就打完了,执行的时候 在终端中执行
java -Dskins.dir=0000000 -jarautoTestService.jar
其中-Dskins.dir=0000000是在main方法中接收的参数,接收方法是String strValue = System.getProperty("skins.dir");
第二种写法:
java -jar jarautoTestService.jar
这样就可以执行了。
3 Maven放自己的包
想好pom写法:
<groupid>me.jfz</groupid>
<artifactid>fuck_client_java</artifactid>
<version>1.0.0</version>
安装本地jar到maven仓库
mvn install:install-file "-Dfile=fastdfs_client.jar" "-Dpackaging=jar" "-DgroupId=me.jfz" "-DartifactId=fuck_client_java" "-Dversion=1.0.0"
例子2:
<groupid>me.jfz</groupid>
<artifactid>synthetica_plain</artifactid>
<version>1.0.0</version>
mvn install:install-file "-Dfile=syntheticaPlain.jar" "-Dpackaging=jar" "-DgroupId=me.jfz" "-DartifactId=synthetica_plain" "-Dversion=1.0.0"
4 正则表达式获取两个字符中间的字符串
String filetext = "//@张小名: 25分//@李小花: 43分//@王力: 100分";
Pattern p = Pattern.compile("\@(.*?)\:");//正则表达式,取=和|之间的字符串,不包括=和|
Matcher m = p.matcher(filetext);
while(m.find()) { System.out.println(m.group(0));//m.group(1)不包括这两个字符}
说明:m.group(0) 是包含那两个字符,m.group(1)不包含那两个字符。
5 打包Java可执行jar包
来源: http://www.cnblogs.com/blog5277/p/5920560.html
Idea打包Java可执行jar包
1,在项目上鼠标右键 --> Open Module Settings
2, Artifacts --> + --> JAR --> From modules with dependencies...
3, Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个
4,如下图,设置 META-INF/MANIFEST.MF
!!!!!切记,不能用默认的(起码我用默认的是不成功的)!!!!!
6,选中你这个项目的根目录,一定要放在根目录下
7,设置完是这样子的,关于 JAR files from libraries的两个选项:
选中第一个的话,打完包后是一个jar包
选中第二个的话,打完包后是一个jar包,外带你项目所用的jar包,个人推荐第二个
8,设置完后就可以点OK了
9,这个页面, Build on make打上勾,其他的不一样也没事
10,最后一步, Build Artifacts... --> XXX.jar --> Build
11,复制这里的路径去找jar包就行
6 Win10设置双击运行jar包
在注册表编辑器中,找到:
HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command
在其中文件打开命令中加入参数“-jar”(无引号),修改后的数值类似:
"D:\Library\Java\jre-10x64\bin\javaw.exe" -jar "%1"
(只需要添加-jar参数,无需修改其他信息,【注意】-jar与前后的引号之间均有空格),保存并退出注册表编辑器。像这样:
然后我们就能双击运行jar包了,但记得有要有做GUI哦。