Java 不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
照例先创建一个类 HelloWorld.java,源代码如下:
- /**
- * @author 陈敬
- * @date 17/12/23
- */
- public class HelloWorld {
- public static void main(String[] args) {
- System.out.println("Hello World");
- }
- }
Java 类名一般是以大写字母开头的名词,多个单词的话每个单词首字母都应该大写。Java 源代码以. java 作为扩展名,而且文件名必须和文件里的公共类同名。
* IDEA 中快捷键:psvm。它可以快速生成以上 main 方法。
比如上面我们编写了一个类叫做 HelloWorld.java,
// 单行注释 和 /*{……}*/ 长篇注释,这两种方式很多语言都一样,没什么特别强调的。
另外还有一种注释可以方便的生成 java doc 文档,以 /** 开头,以 */ 结束。比如 3 中 Hello World 示例代码开头的注释就是这种方式。
在 Java 种每个类型占用几个字节是固定的,与运行 java 的机器无关,这点与 C# 不同,这也是 Java 具有可移植性的关键点。
浮点类型一般 double 比 float 常用, 而且浮点型存在四舍五入的情况,如果用在对精确度要求高的商业场景,就得使用 java.math.BigDecimal 类型了。我们写个 demo 看看:
- /**
- * @author 陈敬
- * @date 17/12/23
- */
- public class DemoDouble {
- public static void main(String[] args) {
- double d1 = 0.05;
- double d2 = 0.01;
- double result = d1 + d2;
- System.out.println(result); //结果:0.060000000000000005
- BigDecimal bd1 = new BigDecimal("0.05");
- BigDecimal bd2 = new BigDecimal(Double.valueOf("0.01"));
- double result2 = bd1.add(bd2).doubleValue();
- System.out.println(result2); //结果:0.06
- }
- }
使用关键字 final 定义常量,之前 C# 用的是 const 关键字,这一点不同要注意一下。命名规则上,常量一般使用大写字母,中间用下划线分隔。例如:
private static final Integer MAX_SIZE=100;
Substring(beginIndex,endIndex):返回子字符串,从 beginIndex 到 endIndex-1。
- //子串
- String s="你好,今天是2017年12月24日,圣诞快乐!!";
- String date=s.substring(6,17);
- System.out.println(date);//输出:2017年12月24日
注意:该方法的返回结果不包含最后一个位置的字符。
①最简单的拼接方式就是使用 + 符号。
②String.join(char,str1,str2….strN):静态方法拼接字符串,用字符 char 分隔,将字符串进行拼接。
- //拼接
- String s2=String.join("、","JAVA核心技术","JAVA编程思想","SpringBoot");
- System.out.println(s2);//输出:JAVA核心技术、JAVA编程思想、SpringBoot
* IDEA 快捷键推荐:sout,快速生成 System.out.println() 方法。
③当有大量字符串拼接操作的时候使用 StringBuilder,这跟 C# 基本相同。
equals 方法判断两个字符串内容是否相等。而 == 判断两个字符串是否指向内存中同一位置。
- //比较
- String s3="abc";
- String s4="abc";
- String s5=new String("abc");
- String s6=new String("abc");
- System.out.println(s3==s4);//true
- System.out.println(s3.equals(s4));//true
- System.out.println(s5==s6);//false
- System.out.println(s5.equals(s6));//true
这个 demo 中 s3==s4 返回 true,因为在 Java 中字符串是不可修改的,编译器有一些优化机制让字符串共享,所以 s3 和 s4 实际上指向了内存中同一位置。
①foreach 循环数组
②打印数组元素 Arrays.toString(a) :返回字符串,数组元素包含在方括号中,以逗号分隔。
- //foreach循环数组
- int[] arr={1,3,5,7,9};
- for(int item:arr){
- System.out.println(item);
- }
③拷贝数组元素 静态方法 Arrays.copyOf(originalArray,length): 第一个参数是要拷贝的源数组,第二个元素是新数组的长度,如果第二个大于原数组长度,则自动填充默认值。
- //打印数组
- System.out.println(Arrays.toString(arr));//输出 [1, 3, 5, 7, 9]
- int[][] arrM={{1,2,3},{11,12,13},{21,22,23}};
- System.out.println(Arrays.deepToString(arrM));//[[1, 2, 3], [11, 12, 13], [21, 22, 23]]
④排序 静态方法 Arrays.sort() 方法采用优化后的快速排序算法对数组元素进行排序。
- //拷贝数组元素
- int[] arr2=Arrays.copyOf(arr,arr.length);
- System.out.println(Arrays.toString(arr2));//输出 [1, 3, 5, 7, 9]
- int[] arr3=Arrays.copyOf(arr,arr.length/2);
- System.out.println(Arrays.toString(arr3));//输出 [1, 3]
- int[] arr4=Arrays.copyOf(arr,arr.length*2);
- System.out.println(Arrays.toString(arr4));//输出 [1, 3, 5, 7, 9, 0, 0, 0, 0, 0]
⑤查找 静态方法 Arrays.binarySearch(arr, valueToFind):二分查找,第一个参数是要查找的数组,第二个参数是要查找的目标元素。该方法有个前提是数组必须是有序的。
- //排序
- int[] arr6={12,4,53,78,21,943,3};
- Arrays.sort(arr6);
- System.out.println(Arrays.toString(arr6));//输出 [3, 4, 12, 21, 53, 78, 943]
⑥填充数组元素
- //查找
- int index = Arrays.binarySearch(arr6, 12); //输出 2
- System.out.println(index);
⑦比较数组 注意要使用 Arrays.equals(arr1,arr2) 比较数组,如果两个数组元素全部相同,则返回 true。
- //填充数组元素
- String[] arr7=new String[5];
- Arrays.fill(arr7,"*");
- System.out.println(Arrays.toString(arr7));//[*, *, *, *, *]
- //比较数组元素
- String[] arr8={"*","*","*","*","*",};
- System.out.println(arr7.equals(arr8));//false
- System.out.println(Arrays.equals(arr7,arr8));//true
来源: https://www.cnblogs.com/janes/p/8109030.html