菜鸟教程 + Java基础课程 + part2

目录

菜鸟教程 + Java基础课程 + part2

八 Number &Math 类

1. Number类

2. Math类

3. Number & Math类常用方法

九 Character类

1. 使用

2. 常用方法

十 String类

1. 创建字符串

2. 字符串长度

3. 连接字符串

4. 创建格式化字符串

5. 常用方法

十一 StringBuffer 和 StringBuilder 类

1. 使用

2. 常用方法

十二 Java数组

1. 声明和创建数组

2. For-Each循环遍历数组

3. 数组作为函数的参数

4. 数组作为函数的返回值

5. 多维数组

6. Arrays类

十三 日期时间

1. Date类

2. SimpleDateFormat 类

3.  使用printf格式化日期

4. Java休眠(sleep)

5. 测量时间间隔

6. Calendar类


八 Number &Math 类

1. Number类

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。

例:


int a = 5000;
float b = 13.65f;
byte c = 0x4a;

然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。

例:


public class Test{public static void main(String args[]){Integer x = 5;x =  x + 10;System.out.println(x); }
}运行结果:
15

当 x 被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。

2. Math类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

例:


public class Test {  public static void main (String []args)  {  System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  System.out.println("0度的余弦值:" + Math.cos(0));  System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  System.out.println("1的反正切值: " + Math.atan(1));  System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  System.out.println(Math.PI);  }
}运行结果:
90 度的正弦值:1.0
0度的余弦值:1.0
60度的正切值:1.7320508075688767
1的反正切值: 0.7853981633974483
π/2的角度值:90.0
3.141592653589793

3. Number & Math类常用方法

九 Character类

Character 类用于对单个字符进行操作。
Character 类在对象中包装一个基本类型 char 的值。

1. 使用

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java语言为内置数据类型char提供了包装类Character类。

Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,例如:


Character ch = new Character('a');

在某些情况下,Java编译器会自动创建一个Character对象。

例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。


// 原始字符 'a' 装箱到 Character 对象 ch 中
Character ch = 'a';// 原始字符 'x' 用 test 方法装箱
// 返回拆箱的值到 'c'
char c = test('x');

2. 常用方法

十 String类

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

1. 创建字符串

最简单方式:


String greeting = "菜鸟教程";

和其它对象一样,可以使用关键字和构造方法来创建 String 对象。

String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数:


public class StringDemo{public static void main(String args[]){char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};String helloString = new String(helloArray);  System.out.println( helloString );}
}运行结果:
runoob

PS:

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了(详看笔记部分解析)。

如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类

2. 字符串长度

用于获取有关对象的信息的方法称为访问器方法。

String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数:


public class StringDemo {public static void main(String args[]) {String site = "www.runoob.com";int len = site.length();System.out.println( "菜鸟教程网址长度 : " + len );}
}运行结果:
14

3. 连接字符串

string1.concat(string2);

更常用的是使用'+'操作符来连接字符串,如:

"Hello," + " runoob" + "!"

4. 创建格式化字符串

我们知道输出格式化数字可以使用 printf() 和 format() 方法。

String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。

String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。

如下所示:


System.out.printf("浮点型变量的值为 " +"%f, 整型变量的值为 " +" %d, 字符串变量的值为 " +"is %s", floatVar, intVar, stringVar);

你也可以这样写:


String fs;
fs = String.format("浮点型变量的值为 " +"%f, 整型变量的值为 " +" %d, 字符串变量的值为 " +" %s", floatVar, intVar, stringVar);

5. 常用方法

十一 StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

1. 使用

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

例:


public class Test{public static void main(String args[]){StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");sBuffer.append("www");sBuffer.append(".runoob");sBuffer.append(".com");System.out.println(sBuffer);  }
}运行结果:
菜鸟教程官网:www.runoob.com

2. 常用方法

其余方法与String类似。

十二 Java数组

Java 语言中提供的数组是用来存储固定大小的同类型元素。

1. 声明和创建数组

dataType[] arrayRefVar = new dataType[arraySize];

另外,你还可以使用如下的方式创建数组。

dataType[] arrayRefVar = {value0, value1, ..., valuek};

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。

2. For-Each循环遍历数组

JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

语法格式如下:


public class TestArray {public static void main(String[] args) {double[] myList = {1.9, 2.9, 3.4, 3.5};// 打印所有数组元素for (double element: myList) {System.out.println(element);}}
}运行结果:
1.9
2.9
3.4
3.5

3. 数组作为函数的参数


public static void printArray(int[] array) {for (int i = 0; i < array.length; i++) {System.out.print(array[i] + " ");}
}下面例子调用 printArray 方法打印出 3,1,2,6,4 和 2:printArray(new int[]{3, 1, 2, 6, 4, 2});

4. 数组作为函数的返回值


public static int[] reverse(int[] list) {int[] result = new int[list.length];for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {result[j] = list[i];}return result;
}

5. 多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

String[][] str = new String[3][4];

(1)动态初始化

法1:直接为每一维分配空间,格式如下:

type[][] typeName = new type[typeLength1][typeLength2];

法2:从最高维开始,分别为每一维分配空间,例如:

String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");

(2)引用

对二维数组中的每个元素,引用方式为 arrayName[index1][index2],例如:

num[1][0];

6. Arrays类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

给数组赋值:通过 fill 方法。
    对数组排序:通过 sort 方法,按升序。
    比较数组:通过 equals 方法比较数组中元素值是否相等。
    查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

具体说明请查看下表:

十三 日期时间

1. Date类

java.util 包提供了 Date 类来封装当前的日期和时间。

(1)实例化Date对象

Date 类提供两个构造函数来实例化 Date 对象。

第一个构造函数使用当前日期和时间来初始化对象。

Date( )

第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。

Date(long millisec)

(2)Date对象方法

Date对象创建以后,可以调用下面的方法:

(3)获取当前日期和时间

Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间,如下所示:

import java.util.Date;public class DateDemo {public static void main(String args[]) {// 初始化 Date 对象Date date = new Date();// 使用 toString() 函数显示日期时间System.out.println(date.toString());}
}运行结果:
Sat Jun 08 11:02:57 CST 2019

注:

Sat 代表 Saturday (星期六), Jun 代表 June (六月), 08 代表 8 号, CST 代表 China Standard Time (中国标准时间,也就是北京时间,东八区)。
从上面的输出结果中,我们发现,默认的时间格式不是很友好,与我们日常看到的日期格式不太一样,如果想要按指定的格式进行显示,如 2014-06-11 09:22:30 ,那该怎么做呢?
此时就到了 java.text 包中的 SimpleDateFormat 类大显身手的时候了!!可以使用 SimpleDateFormat 来对日期时间进行格式化。

(4)日期比较

Java使用以下三种方法来比较两个日期:
1)使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
2)使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
3) 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

2. SimpleDateFormat 类

SimpleDateFormat 类就两个用途:将String转Date,和将Date转String

parse()方法返回的是一个Date类型数据,format()方法返回的是一个StringBuffer类型数据

(1)将String转 Date,用format()方法

SimpleDateFormat类中的 format() 方法可以把Date的数据类型转成特定格式的String类型数据

首先记住一些标记(注意大小写):

年yyyy
月MM
日dd
时HH(24小时制);时hh(12小时制)
分mm
秒ss
毫秒SS

使用方法举例:

//导入包
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo {public static void main(String[] args) {//默认输出格式Date date=new Date();System.out.println(date);//Fri Oct 27 16:56:37 CST 2017//日期格式化显示,首先定义格式SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");//显示20171027格式SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");//显示2017-10-27格式SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//显示2017-10-27 10:00:00格式SimpleDateFormat sdf4=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//显示2017年10月27日10时00分00秒格式//将格式应用于日期System.out.println(sdf1.format(date));//20171027System.out.println(sdf2.format(date));//2017-10-27System.out.println(sdf3.format(date));//2017-10-27 17:11:13System.out.println(sdf4.format(date));//2017年10月27日17时11分13秒}
}

(2) 将Date转成String,用parse()方法

SimpleDateFormat类中的parse()方法可以把String类型的字符串转成特定格式的Date类型数据。

public static void main(String[] args) {  String str = "2013-01-21 15:10:20";  Date date = null;  SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH:mm:ss");  try {  date = sdf.parse(str);  } catch (ParseException e) {  System.out.println(e.getMessage());  }  System.out.println(date);  System.out.println(date.getTime());
}

3.  使用printf格式化日期

printf 方法可以很轻松地格式化时间和日期。使用两个字母格式,它以 %t 开头并且以下面表格中的一个字母结尾。

例子:

import java.util.Date;public class DateDemo {public static void main(String args[]) {// 初始化 Date 对象Date date = new Date();//c的使用  //%n是换行的格式字符串,只能用在print输出语句中, 而\n是回车字符, 可以用在所有的字符串中      System.out.printf("全部日期和时间信息:%tc%n",date);   //f的使用  System.out.printf("年-月-日格式:%tF%n",date);  //d的使用  System.out.printf("月/日/年格式:%tD%n",date);  //r的使用  System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  //t的使用  System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  //R的使用  System.out.printf("HH:MM格式(24时制):%tR",date);  }
}运行结果:
全部日期和时间信息:周六 6月 08 11:42:12 CST 2019
年-月-日格式:2019-06-08
月/日/年格式:06/08/19
HH:MM:SS PM格式(12时制):11:42:12 上午
HH:MM:SS格式(24时制):11:42:12
HH:MM格式(24时制):11:42

如果你需要重复提供日期,那么利用这种方式来格式化它的每一部分就有点复杂了。因此,可以利用一个格式化字符串指出要被格式化的参数的索引。

索引必须紧跟在%后面,而且必须以$结束。

例如:

import java.util.Date;public class DateDemo {public static void main(String args[]) {// 初始化 Date 对象Date date = new Date();// 使用toString()显示日期和时间System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date);}
}运行结果:
Due date: 六月 08, 2019

或者,你可以使用 < 标志。它表明先前被格式化的参数要被再次使用。

例如:


import java.util.Date;public class DateDemo {public static void main(String args[]) {// 初始化 Date 对象Date date = new Date();// 显示格式化时间System.out.printf("%s %tB %<te, %<tY", "Due date:", date);}
}运行结果:
Due date: 六月 8, 2019

4. Java休眠(sleep)

sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。

你可以让程序休眠一毫秒的时间或者到您的计算机的寿命长的任意段时间。例如,下面的程序会休眠3秒:

import java.util.*;public class SleepDemo {public static void main(String args[]) {try { System.out.println(new Date( ) + "\n"); Thread.sleep(1000*3);   // 休眠3秒System.out.println(new Date( ) + "\n"); } catch (Exception e) { System.out.println("Got an exception!"); }}
}运行结果:
Thu Sep 17 10:20:30 CST 2015Thu Sep 17 10:20:33 CST 2015

5. 测量时间间隔

import java.util.*;public class DiffDemo {public static void main(String args[]) {try {long start = System.currentTimeMillis( );System.out.println(new Date( ) + "\n");Thread.sleep(5*60*10);System.out.println(new Date( ) + "\n");long end = System.currentTimeMillis( );long diff = end - start;System.out.println("Difference is : " + diff);} catch (Exception e) {System.out.println("Got an exception!");}}
}运行结果:
Fri Jan 08 09:48:47 CST 2016Fri Jan 08 09:48:50 CST 2016Difference is : 3019

6. Calendar类

我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。

Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

(1)创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

(2)创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);

(3)Calendar类对象字段类型

Calendar类中用以下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想。

(4)set设置

(5)Add设置

(6)Calendar类对象信息的获得

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

(7)GregorianCalendar类

Calendar类的一个子类。

菜鸟教程 + Java基础课程 + part2相关推荐

  1. 【全栈之路】JAVA基础课程四_生产者消费者问题(20190614v1.1)

    欢迎进入JAVA基础课程 博客地址:https://segmentfault.com/a/1190000019482921 本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所总结,不管是 ...

  2. iPhone开发教程 UI基础课程(58课时)

    qianqianlianmeng iPhone开发教程 UI基础课程(58课时) 第一章   iPhone开发入门 UI基础课程 第一章 iPhone开发入门 1.1 iOS概述和架构         ...

  3. java基础小记_[Java教程]Java基础学习小记

    [Java教程]Java基础学习小记 0 2016-10-07 18:00:07 题外话:总结了多年的学习心得,不得不说,睡眠是一个学习者的必需品!所谓"早起毁一天"不是没有道理哪 ...

  4. java删减pdf内容合并_[Java教程]Java基础之PDF文件的合并

    [Java教程]Java基础之PDF文件的合并 0 2017-07-28 00:00:45 1.首先下载一个jar包:pdfbox-app-1.7.1.jar 2.代码如下:package com;i ...

  5. 大学Java基础课程设计——网络聊天室

    不登高山,不知天之高也:不临深溪,不知地之厚也. | @Author:TTODS 目录 项目简介 系统设计与实现 聊天室系统的总体设计 服务器端功能设计 客户端功能设计 数据包 用户操作处理流程 客户 ...

  6. Java 基础-课程设计-话费充值信息管理系统

    本次项目是在学校的Java基础课程结课时做的课程设计,涉及知识比较基础,适合Java刚入门的小白进行学习. 本项目提供答辩PPT,课程设计论文,仅供参考,拒绝抄袭 项目简介 本项目是一个话费充值信息管 ...

  7. Android开发教程JAVA基础(汇总)

    Android游戏开发视频教程(汇总) Android开发教程JAVA基础之Java 概述 Android开发教程JAVA基础之标示符.关键字1 Android开发教程JAVA基础之标示符.关键字2 ...

  8. java script 菜鸟教程_JS 基础知识之菜鸟教程(2016-09-30)

    //2016-09-30 重读菜鸟教程上JS教程同时摘录重要知识点 1.JavaScript 输出几种方式: 使用 window.alert() 弹出警告框. 使用 document.write() ...

  9. python基础教程菜鸟教程-python基础菜鸟教程,Python的基础语法

    原标题:python基础菜鸟教程,Python的基础语法 什么是Python?Python是一门简单直观的编程语言,并且目前是开源的,可以方便任何人使用. Python的开发哲学:用一种方法,最好是只 ...

最新文章

  1. 老大难的 Java ClassLoader,到了该彻底理解它的时候了
  2. UIBezierPath 绘制正五边形
  3. 判断字符串中的括号是否匹配——c和c++实现
  4. 不错的博 2010-02-07
  5. java向指定文件继续写内容_java 向指定文件写入内容(如文件存在,则先删除再创建;写入如目录不存在,则创建)...
  6. 飞鸽传书2012绿色版
  7. 函数在机器底层是如何实现的_软件机器人如何实现“二次录入”自动化,促进智慧政务?...
  8. 线性回归的梯度下降和正规方程组求解
  9. 最新SSCI影响因子以及分区名单
  10. 北航计算机组成原理课程设计-2020秋 PreProject-Logisim-斐波那契数列问题(简单迭代法+矩阵乘法的快速幂)
  11. 网页爬取常用正则表达式的介绍
  12. 新高考教师增值评价方式的再研究
  13. 数学分析教程(科大)——6.1笔记+习题
  14. EasyUI下拉框自适应高度
  15. PDF 转 Word - 免费在线 pdf 转换成 word 文档
  16. win10设置计算机关机时间,win10怎样固定时间关机_win10怎样设置电脑关机时间设置...
  17. linux登录界面鼠标键盘失灵,在archlinux安装界面这卡住了,鼠标键盘失灵
  18. caffe详解之激活函数层
  19. dble配置mysql主从同步
  20. SQL Server基础操作(此随笔仅作为本人学习进度记录六 !--程序块和循环)

热门文章

  1. 给力!数据攻城狮教你用大数据找女朋友
  2. 如何制作一个可以自动更新的Github个人主页
  3. Arduino温度报警
  4. Android系统开发:GMS包移植
  5. OpenAI祭出120亿参数魔法模型!从文本合成图像栩栩如生,仿佛拥有人类的语言想象力...
  6. 2019伯克利中美峰会 | 2019峰会揭秘 峰会历程回顾 售票通道
  7. 怎么利用计算机制作分形图片,一个能徒手绘制分形图的人 天才之击
  8. TensorRT/samples/common/argsParser.h源碼研讀
  9. java 转换unix时间戳,Java与Unix时间戳的相互转换详解
  10. 不动产登记引入电子签章,在线签发证照证明,信息自主查询、下载