通过这篇文章,你将学会:
基础数据类型与对象的区别
如何处理字符串编码
正确编写java文档注释
基础数据类型与对象的区别
public class HelloWorld {
public static int i = 0;
}
这里我定义了一个全局变量i,并赋值为0,我将在下面的主函数里用到它:
public static void main(String []args) {
i = 10;
int j = 10;
System.out.println(i==j);
}
因为我以及定义 i 为全局变量了,所以第一行便不需要再定义数据类型了,直接赋值就好;而 j 是属于主函数里的新变量,因此需要给它一个数据类型,这里我们把它设置为整型int,并且把它和 i 赋一样的值10,我们来比较一下 i 和 j 的区别:
不用想,大家都应该知道, i 和 j 的值相同,因此返回的是True,那么,现在现在我们把 i 实例化:
public static void main(String []args) {
i = 10;
int j = 10;
System.out.println(i==j);
Integer i1 = new Integer(i);
Integer i2 = new Integer(i);
System.out.println(i1);
System.out.println(i2);
System.out.println(i1==i2);
}
现在的 i1 和 i2 还会相等吗?
值是相同的,但是为什么不相同呢?我们来debug一下:
可以发现,值确实是相同的,但是这是两个对象,内存地址不同,因此判断为False因此说,两个基本数据类型的值相同时,指向的是同一个内存地址;而两个对象即使值相同,却是两个不同的东西。再来看个例子加深印象:
如何处理字符串编码
String str = "淘宝网https://mdskip.taobao.com/core/initItemDetail/id=0";
这里我们定义一串字符串,里面有中文,字母以及特殊字符,其实就是在一个网址前加了一个中文,下面我们把它转成unicode:
public static String unicode(String source) {
StringBuffer sb = new StringBuffer();
char[] source_char = source.toCharArray();
String unicode = null;
for (i = 0; i < source_char.length; i++) {
unicode = Integer.toHexString(source_char[i]);
if (unicode.length() <= 2) {
unicode = "00" + unicode;
}
sb.append("\\u" + unicode);
}
//System.out.println(sb);
return sb.toString();
}
再来个解码:
private static String decodeUnicode(String unicode) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer();
String[] hex = unicode.split("\\\\u");
for (i = 1; i < hex.length; i++) {
int data = Integer.parseInt(hex[i], 16);
sb.append((char) data);
}
return sb.toString();
}
但是这种方式过于麻烦,我们来看看简单的方式:
import java.io.UnsupportedEncodingException;
public static void main(String []args) {
String str = "淘宝网https://mdskip.taobao.com/core/initItemDetail/id=0";
try {
String str2 = new String(str.getBytes("gbk"), "utf-8");
System.out.println("utf-8:" + str2);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
(UTF-8编码)
用内置的getBytes()函数即可搞定编码问题
那如果要对字符串拆分,怎么解决呢?别担心,split()函数帮你搞定:
import java.io.UnsupportedEncodingException;
public static void main(String []args) {
String str = "淘宝网https://mdskip.taobao.com/core/initItemDetail/id=0";
String[] str1 = str.split("\\//|\\/");
for (i = 0; i < str1.length; i++) {
System.out.println("str[" + i + "]=" + str1[i]);
}
}
在分割时有优先级,千万不要搞错了,不然就会出现这样的结果(仔细观察):
正确编写java文档注释
Java 支持三种注释方式。前两种分别是 // 和 / * * /,第三种被称作说明注释,它以 /** 开始,以 */结束:
//Java basic data type introduction syntax demonstration
/*@author 郑博培*/
/**
*@version 2020-03-10
*/
说明注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中:
这样就完成了,我们打开生成的目录:
找到index.html,打开它:
注释最为忌讳的就是描述代码!,希望大家都能养成一个写注释的好习惯。
假设阅读代码的人比你更懂代码, 他只是不知道你的代码要做什么.