异想家博采众长的客厅

Java基础知识点

2018.12.01

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("&#92;@(.*?)&#92;:");//正则表达式,取=和|之间的字符串,不包括=和|
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哦。