原来你是这样的Java[01]--基础一瞥

打印 上一主题 下一主题

主题 556|帖子 556|积分 1668

1.Java是什么呢?

Java不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。 更主要是JAVA已经具有强大的生态,使它具有了鲜活的生命力。
2.JDK 和 JRE 是什么?


  • JDK:全称是 Java Development Kit,这是我们编写java程序的开发人员需要的。我们首先要下载和安装JDK,然后设置环境变量,具体操作可以参考这篇文章: JAVA入门[1]--安装JDK
  • JRE:全称是 Java Runtime Environment,它包含虚拟机但不包含编译器,这是运行java程序的用户需要的环境。
3.来个Hello World看看吧?

照例先创建一个类HelloWorld.java,源代码如下:
  1. /**
  2.   * @author 陈敬
  3.   * @date 17/12/23
  4.   */
  5. public class HelloWorld {
  6.      public static void main(String[] args){
  7.          System.out.println("Hello World");
  8.      }
  9. }
复制代码
Java类名一般是以大写字母开头的名词,多个单词的话每个单词首字母都应该大写。Java源代码以.java作为扩展名,而且文件名必须和文件里的公共类同名。
* IDEA中快捷键: psvm。它可以快速生成以上main方法。
4.怎么用命令行运行java程序?

比如上面我们编写了一个类叫做HelloWorld.java,

  • 首先打开一个终端;
  • 然后进入到HelloWorld.java类所在的目录;
  • 输入命令 javac HelloWorld.java 。javac是一个java编译器,注意该命令需要的是文件名,也就是要带着.java后缀。
  • 输入命令 java HelloWorld 。java启动Java虚拟机,该命令只需要类名,不需要带着.java或者.class等后缀。
5.Java代码怎么加注释?

//  单行注释  和  /*{……}*/ 长篇注释,这两种方式很多语言都一样,没什么特别强调的。
另外还有一种注释可以方便的生成java doc文档, 以/* 开头,以*/结束*。比如 3 中Hello World示例代码开头的注释就是这种方式。
6.Java的几种基本数据类型是?


  • 4种整型:byte(1字节) ,short(2字节),int(4字节),long(8字节)。(PS:Java没有无符号整型)
  • 2种浮点型:float(4字节),double(8字节)
  • 字符类型:char(2字节)
  • 布尔类型:boolean(1字节)
在Java种每个类型占用几个字节是固定的,与运行java的机器无关,这点与C#不同,这也是Java具有可移植性的关键点。
浮点类型一般double比float常用,而且浮点型存在四舍五入的情况,如果用在对精确度要求高的商业场景,就得使用java.math.BigDecimal类型了。我们写个demo看看:
  1. /**
  2.   * @author 陈敬
  3.   * @date 17/12/23
  4.   */
  5. public class DemoDouble {
  6.      public static void main(String[] args) {
  7.          double d1=0.05;
  8.          double d2=0.01;
  9.          double result=d1+d2;
  10.          System.out.println(result);//结果:0.060000000000000005
  11.         BigDecimal bd1=new BigDecimal("0.05");
  12.          BigDecimal bd2=new BigDecimal(Double.valueOf("0.01"));
  13.          double result2=bd1.add(bd2).doubleValue();
  14.          System.out.println(result2);//结果:0.06
  15.      }
  16. }
复制代码
7.Java怎么定义常量?

使用关键字 final 定义常量,之前C#用的是const关键字,这一点不同要注意一下。命名规则上,常量一般使用大写字母,中间用下划线分隔。例如:
private static final Integer MAX_SIZE=100;
8.String字符串怎么截取子串?

Substring(beginIndex,endIndex):返回子字符串,从beginIndex到endIndex-1。
  1. //子串
  2. String s="你好,今天是2017年12月24日,圣诞快乐!!";
  3. String date=s.substring(6,17);
  4. System.out.println(date);//输出:2017年12月24日
复制代码
注意:该方法的返回结果不包含最后一个位置的字符。
9.Java字符串怎么拼接?

①最简单的拼接方式就是使用+符号。
②String.join(char,str1,str2….strN):静态方法拼接字符串,用字符char分隔,将字符串进行拼接。
  1. //拼接
  2. String s2=String.join("、","JAVA核心技术","JAVA编程思想","SpringBoot");
  3. System.out.println(s2);//输出:JAVA核心技术、JAVA编程思想、SpringBoot
复制代码
* IDEA快捷键推荐: sout,快速生成 System.out.println()方法。
③当有大量字符串拼接操作的时候使用StringBuilder,这跟C#基本相同。
10.怎么判断两个Java字符串是否相等?

equals方法判断两个字符串内容是否相等。而==判断两个字符串是否指向内存中同一位置。
  1. //比较
  2. String s3="abc";
  3. String s4="abc";
  4. String s5=new String("abc");
  5. String s6=new String("abc");
  6. System.out.println(s3==s4);//true
  7. System.out.println(s3.equals(s4));//true
  8. System.out.println(s5==s6);//false
  9. System.out.println(s5.equals(s6));//true
复制代码
这个demo中s3==s4返回true,因为在Java中字符串是不可修改的,编译器有一些优化机制让字符串共享,所以s3和s4实际上指向了内存中同一位置。
11.Java数组有哪些常用操作?

①foreach循环数组
  1. //foreach循环数组
  2. int[] arr={1,3,5,7,9};
  3. for(int item:arr){
  4.      System.out.println(item);
  5. }
复制代码
②打印数组元素
Arrays.toString(a) :返回字符串,数组元素包含在方括号中,以逗号分隔。
Arrays.deepToString(arr):用来打印多维数组。
  1. //打印数组
  2. System.out.println(Arrays.toString(arr));//输出 [1, 3, 5, 7, 9]
  3. int[][] arrM={{1,2,3},{11,12,13},{21,22,23}};
  4. System.out.println(Arrays.deepToString(arrM));//[[1, 2, 3], [11, 12, 13], [21, 22, 23]]
复制代码
③拷贝数组元素
静态方法 Arrays.copyOf (originalArray,length):第一个参数是要拷贝的源数组,第二个元素是新数组的长度,如果第二个大于原数组长度,则自动填充默认值。
  1. //拷贝数组元素
  2. int[] arr2=Arrays.copyOf(arr,arr.length);
  3. System.out.println(Arrays.toString(arr2));//输出   [1, 3, 5, 7, 9]
  4. int[] arr3=Arrays.copyOf(arr,arr.length/2);
  5. System.out.println(Arrays.toString(arr3));//输出 [1, 3]
  6. int[] arr4=Arrays.copyOf(arr,arr.length*2);
  7. System.out.println(Arrays.toString(arr4));//输出 [1, 3, 5, 7, 9, 0, 0, 0, 0, 0]
复制代码
④排序
静态方法 Arrays.sort() 方法采用优化后的快速排序算法对数组元素进行排序。
  1. //排序
  2. int[] arr6={12,4,53,78,21,943,3};
  3. Arrays.sort(arr6);
  4. System.out.println(Arrays.toString(arr6));//输出 [3, 4, 12, 21, 53, 78, 943]
复制代码
⑤查找
静态方法 Arrays.binarySearch(arr, valueToFind):二分查找,第一个参数是要查找的数组,第二个参数是要查找的目标元素。该方法有个前提是 数组必须是有序的
  1. //查找
  2. int index=Arrays.binarySearch(arr6,12);//输出 2
  3. System.out.println(index);
复制代码
⑥填充数组元素
静态方法 Arrays.fill(arr,item):将数组arr每个元素都填充为item.
  1. //填充数组元素
  2. String[] arr7=new String[5];
  3. Arrays.fill(arr7,"*");
  4. System.out.println(Arrays.toString(arr7));//[*, *, *, *, *]
复制代码
⑦比较数组
注意要使用 Arrays.equals (arr1,arr2) 比较数组,如果两个数组元素全部相同,则返回true。
  1. //比较数组元素
  2. String[] arr8={"*","*","*","*","*",};
  3. System.out.println(arr7.equals(arr8));//false
  4. System.out.println(Arrays.equals(arr7,arr8));//true
复制代码
12.日期对象LocalDate
①获取当前日期时间
  1. //当前日期
  2.         LocalDate today=LocalDate.now();
  3.         System.out.println(today);//2017-12-26
  4.         //当前时间
  5.         LocalTime currentTime=LocalTime.now();
  6.         System.out.println(currentTime);//12:23:09.054
  7.         //当前日期时间
  8.         LocalDateTime dateTime=LocalDateTime.now();
  9.         System.out.println(dateTime);//2017-12-26T12:23:09.054
复制代码
②构造某个指定日期
  1. //构造指定日期
  2. LocalDate newYear=LocalDate.of(2018,1,1);
  3. System.out.println(newYear);//2018-01-01
复制代码
③解析日期字符串,如果不合法会抛出异常。
  1. //解析日期字符串
  2. LocalDate date1=LocalDate.parse("2018-12-31");
  3. System.out.println(date1);//2018-12-31
  4. //LocalDate.parse("2018-11-31");//抛出异常
复制代码
④获取若干天后的某个日期
  1. //15天后
  2. LocalDate date15=today.plusDays(15);
  3. System.out.println(date15);//2018-01-10
复制代码
⑤获取年份、月份、日期
  1. //获取年、月、日
  2. System.out.println(date15.getYear());//2018
  3. System.out.println(date15.getMonth());//JANUARY
  4. System.out.println(date15.getMonthValue());//1
  5. System.out.println(date15.getDayOfMonth());//10
  6. System.out.println(date15.getDayOfWeek());//WEDNESDAY
  7. System.out.println(date15.getDayOfYear());//10
复制代码
注意:使用Date对象的getYear()方法,不能获取当前的年份
  1. System.out.println(new Date().getYear());//117,不是我们想要的结果2017
复制代码
我们看一下该方法的源码,计算的是当前年份和1900年的差值。
  1. public int getYear() {
  2.       return normalize().getYear() - 1900;
  3. }
复制代码
练习:关于日期,可以做一个有趣的小练习,就是打印当前月份的日历

本人公众号[ 敬YES ]同步更新,欢迎大家关注~


觉得写的好的话,赞赏一下,是对博主的支持


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表