黑马程序员——java基础-其他的对象

来源:互联网 发布:淘宝 西门子 翻新 编辑:程序博客网 时间:2024/05/30 23:30

------- android培训、java培训、期待与您交流! ----------

第一节:其他对象
一、System类简述:
1、System 类包含一些有用的类字段和方法。它不能被实例化。
2、out对应标准输出流(显示器),int属性对应的是键盘。
3、System类中的一些方法:
(1) public static long currentTimeMillis():获取当前时间。可以用于计算程序运行时间只要将开始时间和结束时间相减即可。
(2) public static Properties getProperties():获取系统属性集。
(3) public static String getProperty(String key)获取指定键指示的系统属性。 
(4) public static void exit(int status)终止当前正在运行的 Java 虚拟机。
二、Runtime类的简述:
1、每个java应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。 
2、应用程序不能创建自己的 Runtime 类实例。 
3、Runtime类中的一些方法:
(1)public static Runtime getRuntime()返回与当前java应用程序相关的运行时对象。
(2)public Process exec(String command)在单独的进程中执行指定的字符串命令。             
(3)public abstract void destroy()杀掉子进程。强制终止此 Process 对象表示的子进程。
三、Date/DateFormat类:
1、Date是日期类,可以精确到毫秒。
(1) 构造方法
Date()
Date(long time)
(2)成员方法
getTime()
setTime(long time)
(3)日期和毫秒值的相互转换

//将毫秒值转成 指定的日期的格式   xxxx年xx月xx日   hh:mm:ss/*1 获取当前的时间 用System.currentTimeMillis返回的long类型的2 创建date类的对象并把long类型传入到构造函数当中3 获取时间格式器有两种模式的方法4 调用formart方法即可*/import java.util.*;import java.text.*;class Demo12{public static void main(String[] args){//获取当前的毫秒值long l=System.currentTimeMillis();//创建Date类的对象并把当前的毫秒值传入Date d=new Date(l);//时间格式器DateFormat dateformat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.MEDIUM);//得到自己想要的格式String s=dateformat.format(d);//打印System.out.println(s);}}
2、DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat
(1)SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
(2)日期和字符串的转换
a:Date -- String
format()
b:String -- Date
parse()
(3)代码体现
//"2012/3/17"转成日期对象。/*思路:1 上种这种模式已经超出了DateFormat中的四种模式 又因为它是抽象的 只能找自定义模式了 它的一个子类 SimpleDateFormat可以自定义模式2 创建SimpleDateFormat类的对象。调用parse方法3 打印Date对象。*/import java.text.*;import java.util.*;class Demo13{public static void main(String[] args)throws Exception{//自定义一个字符串String str="2012/3/17";//创建SimpleDateFormat类的对象,并把格式传入SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");Date d =sdf.parse(str);//打印System.out.println(d);}}

小练习

//"2013-4-25"到"2013年7月29日"到底有多少天?/*思路:1 既然是算有多少天 就是把他们的时间毫秒值进行想减就行了2首先对第一个时间进行解析它属于时间格式器里的SHORT模式 第二个它属于MEDIUM模式3 用parse方法对时间进行解析4 在获取他们的毫秒值5 进行想减即可*/import java.text.*;import java.util.*;class Demo14{public static void main(String[] args)throws Exception{//把这两种的日期都用字符串表示String style="2013-4-25";String style1="2013年7月29日";//两种日期对应两种不同日期的格式DateFormat dateformat=DateFormat.getDateInstance(DateFormat.MEDIUM);DateFormat dateformat1=DateFormat.getDateInstance(DateFormat.LONG);//对日期进行解析Date d1=dateformat.parse(style);Date d2=dateformat1.parse(style1);//得到这两种日期的毫秒值long l1=d1.getTime();long l2=d2.getTime();//把这两个毫秒值进行想减并转换成天long day=Math.abs(l1-l2)/1000/60/60/24;int day1=(int)day;//打印System.out.println(day1);}}

三、Calendar类
1、日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
2、如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();获取当前的时间日历对象
本质返回的是子类对象
3、成员方法
(1) public int get(int field) 根据日历字段得到对应的值
(2) public abstract void add(int field,int amount)根据日历字段和一个正负数确定是添加还是减去对应日历字段的值                         
(3) public final void set(int year,int month,int date)设置日历对象的年月日
4、代码体现

//获取给定年份的2月有多少天?【面试题】/*1 根据getInstance方法(是获取当前的时间)可以获取Calendar 对象2 在进行设置set年份和月份3 在根据add方法进行对3月份往前推一天就是二月份的天数了*/import java.util.*;class Demo15{public static void main(String[] args){//得到日历对象Calendar c=Calendar.getInstance();//进行设置c.set(2012,2,1);//设置日期的偏移量c.add(Calendar.DAY_OF_MONTH,-1);//得到年int year=c.get(Calendar.YEAR);//的到月int month=c.get(Calendar.MONTH)+1;//得到天int day=c.get(Calendar.DAY_OF_MONTH);//得到星期String week=getValue(c.get(Calendar.DAY_OF_WEEK));//打印出日期System.out.println(year+"   "+month+"    "+day+"    "+week);}public static String getValue(int in){//对传入的值进行判断if (in<1||in>7){throw new RuntimeException("类型转换异常");}//定义一个数组String[] wee={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};return wee[in];}}
四、Math类
1、Math的简述:Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 
2、Math的常用方法:
public static int abs(int a)返回的是int的绝对值。
public static double ceil(double a)返回大于参数的最小整数。
public static double floor(double a)返回小于参数的最大整数。
public static int max(int a,int b)返回两个int中的最大的一个。
public static double pow(double a,double b)a的b次方。
public static int round(float a)返回四舍五入的整数。
public static double sqrt(double a)a的正平方根。
五、Random类
1、用于产生随机数的类
2、构造方法:
(1) Random() 默认种子,每次产生的随机数不同
(2) Random(long seed) 指定种子,每次种子相同,随机数就相同
3、成员方法:
(1) int nextInt() 返回int范围内的随机数
(2) int nextInt(int n) 返回[0,n)范围内的随机数
六、BigInteger类
1、针对大整数的运算
2、构造方法
(1) BigInteger(String s)
3、成员方法
(1)public BigInteger add(BigInteger val) 加
(2)public BigInteger subtract(BigInteger val) 减
(3)public BigInteger multiply(BigInteger val) 乘
(4)public BigInteger divide(BigInteger val) 除
   (5)public BigInteger[] divideAndRemainder(BigInteger val)商和余数
4、代码体现
// 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000import java.math.BigInteger;class Demo16 {  public static void main(String args[])  {  //创建一个值为1的BigInteger类的对象          BigInteger sum= new BigInteger("1");  //定义一个变量          int count = 0;                    for(int x = 2 ; x <=1000 ; x++)          {  //结果进行循环相乘                  sum= sum.multiply(new BigInteger(i+""));          }  //转变成字符串          String str = sum.toString();                    //的到的结果进行遍历          for(int i = 0 ; i <str.length(); i++)          {  //判断是否与零相同                 if(str.charAt(i) == '0')          {  //有一个零进行相加                  count++;                            }           }          //打印结果          System.out.println(count);  }}

------- android培训、java培训、期待与您交流! ----------

0 0
原创粉丝点击