本文共 5588 字,大约阅读时间需要 18 分钟。
/** * @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方法。在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 }}
//子串String s="你好,今天是2017年12月24日,圣诞快乐!!";String date=s.substring(6,17);System.out.println(date);//输出:2017年12月24日
注意:该方法的返回结果不包含最后一个位置的字符。
//拼接String s2=String.join("、","JAVA核心技术","JAVA编程思想","SpringBoot");System.out.println(s2);//输出:JAVA核心技术、JAVA编程思想、SpringBoot
* IDEA快捷键推荐:sout,快速生成 System.out.println()方法。
③当有大量字符串拼接操作的时候使用StringBuilder,这跟C#基本相同。
//比较String s3="abc";String s4="abc";String s5=new String("abc");String s6=new String("abc");System.out.println(s3==s4);//trueSystem.out.println(s3.equals(s4));//trueSystem.out.println(s5==s6);//falseSystem.out.println(s5.equals(s6));//true
这个demo中s3==s4返回true,因为在Java中字符串是不可修改的,编译器有一些优化机制让字符串共享,所以s3和s4实际上指向了内存中同一位置。
//foreach循环数组int[] arr={1,3,5,7,9};for(int item:arr){ System.out.println(item);}
②打印数组元素
Arrays.toString(a) :返回字符串,数组元素包含在方括号中,以逗号分隔。Arrays.deepToString(arr):用来打印多维数组。//打印数组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.copyOf(originalArray,length):第一个参数是要拷贝的源数组,第二个元素是新数组的长度,如果第二个大于原数组长度,则自动填充默认值。//拷贝数组元素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.sort() 方法采用优化后的快速排序算法对数组元素进行排序。//排序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]
⑤查找
静态方法Arrays.binarySearch(arr, valueToFind):二分查找,第一个参数是要查找的数组,第二个参数是要查找的目标元素。该方法有个前提是数组必须是有序的。//查找int index=Arrays.binarySearch(arr6,12);//输出 2System.out.println(index);
⑥填充数组元素
静态方法Arrays.fill(arr,item):将数组arr每个元素都填充为item.//填充数组元素String[] arr7=new String[5];Arrays.fill(arr7,"*");System.out.println(Arrays.toString(arr7));//[*, *, *, *, *]
⑦比较数组
注意要使用Arrays.equals(arr1,arr2) 比较数组,如果两个数组元素全部相同,则返回true。//比较数组元素String[] arr8={"*","*","*","*","*",};System.out.println(arr7.equals(arr8));//falseSystem.out.println(Arrays.equals(arr7,arr8));//true
//当前日期 LocalDate today=LocalDate.now(); System.out.println(today);//2017-12-26 //当前时间 LocalTime currentTime=LocalTime.now(); System.out.println(currentTime);//12:23:09.054 //当前日期时间 LocalDateTime dateTime=LocalDateTime.now(); System.out.println(dateTime);//2017-12-26T12:23:09.054
//构造指定日期LocalDate newYear=LocalDate.of(2018,1,1);System.out.println(newYear);//2018-01-01
//解析日期字符串LocalDate date1=LocalDate.parse("2018-12-31");System.out.println(date1);//2018-12-31//LocalDate.parse("2018-11-31");//抛出异常
//15天后LocalDate date15=today.plusDays(15);System.out.println(date15);//2018-01-10
⑤获取年份、月份、日期
//获取年、月、日 System.out.println(date15.getYear());//2018System.out.println(date15.getMonth());//JANUARYSystem.out.println(date15.getMonthValue());//1System.out.println(date15.getDayOfMonth());//10System.out.println(date15.getDayOfWeek());//WEDNESDAYSystem.out.println(date15.getDayOfYear());//10
注意:使用Date对象的getYear()方法,不能获取当前的年份
System.out.println(new Date().getYear());//117,不是我们想要的结果2017
我们看一下该方法的源码,计算的是当前年份和1900年的差值。
public int getYear() { return normalize().getYear() - 1900;}
本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/p/8109030.html,如需转载请自行联系原作者