奋斗黑马程序员----Java几点常用知识

来源:互联网 发布:淘宝退货卖家恶意拒收 编辑:程序博客网 时间:2024/05/18 22:43
----------android培训java培训、期待与您交流! ----------
/** * java部分常用知识小结: *//** 1 :教我们如何使用api。 *  *    public final class System extends Object,System 类包含一些有用的类字段和方法。 * 它不能被实例化。 在 System 类提供的设施中,有标准输入、标准输出和错误输出流; * 对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分 * 的实用方法。 *  * System: * 该类不能被实例化。。对外没有提供构造函数。。方法都是静态的。。  * *  System:类中的方法和属性都是静态的。。 *  out:标准输出,默认是控制台 *  in: 标准输入,默认是键盘 *   * 描述系统的一些信息。。 * 获取系统属性信息:Properties System.getProperties(); * Properties的父类是HashTable,属于Map类,操作参考Map集合。 */import java.util.*;public class SystemDemo {public static void main(String[] args){Properties pro = System.getProperties();//返回一个双列集合。。/* * 因为Properties是HashTable的子类,也就是Map集合的一个子类对象。 * 那么可以通过map的方法取出该集合中的元素。 *  * 该集合中存储的都是字符串,没有泛型的定义。。 */System.setProperty("mykey","myvalue");//使用StringPropertyNames();也可以打印这些信息。。//获取所有属性信息。for(Object obj :pro.keySet()){String value = (String)pro.get(obj);//此处用Object也可以。。System.out.println(obj+"::"+value);}/* *如何在系统中自定义一些特有信息呢?  */System.setProperty("mykey","myvalue");//为了便于查看结果,在上面有。。//获取指定属性信息。。String value = System.getProperty("os.name");System.out.println("操作系统是:"+value);/*另一个实例: * 可不可以在jvm启动时,动态的加载一些属性信息呢?? *  * 命令行:java -D<name>=<value>set a system out put  */String v = System.getProperty("haha");System.out.println("v="+v);//如此处:java -Dhaha=qqqqq SystemDemo }}/** * Properties的应用要会。。 *//** 2 :Runtime类。 *  * public class Runtime extends Object*   每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境* 相连接。可以通过 getRuntime 方法获取当前运行时。 *    应用程序不能创建自己的 Runtime 类实例。* * Runtime对象:* 1,该类并没有提供构造函数。说明不可以new对象,那么会直接想到该类中的方法都* 是静态的。* 2,但是发现该类中还有非静态方法。说明该类肯定提供了方法获取本类对象,而且该* 方法是静态的,且返回值类型是本类类型。。* 3,由这个特点可以看出,该类使用了单例设计模式完成。。 * *   一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但* 可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。*   一旦得到了一个当前的Runtime对象的引用,就可以调用Runtime对象的方法去控制* Java虚拟机的状态和行为。* *  static Runtime getRuntime() 返回与当前 Java 应用程序相关的运行时对象。 * */public class RuntimeDemo {public static void main(String[] args) throws Exception{Runtime r = Runtime.getRuntime();Process p = r.exec("D:\\win7\\QQ\\Bin\\QQ.exe");//要使用"\\",单个的"\",会当成转义字符。。Process p1 = r.exec("notepad.exe SystemDemo.java");Thread.sleep(4000);//停顿4秒。。p.destroy(); //秒杀进程。。只能杀该对象启动的进程。。对于系统进程是无法杀掉的。。p1.destroy();}}/** 3 :Date对象。。 *  *   public class Date extends Object implements Serializable, Cloneable, Comparable<Date> * 类 Date 表示特定的瞬间,精确到毫秒。  * 在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和 * 秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。 * 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来 * 格式化和解析日期字符串。Date 中的相应方法已废弃. *  *     public class SimpleDateFormat extends DateFormatS impleDateFormat 是一个以与 * 语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、 * 解析(文本 -> 日期)和规范化。 * */import java.util.*;//导入工具类。import java.text.*;//导入SimpleDateFormat类。public class DateDemo {public static void main(String[] args){Date d = new Date();System.out.println(d);/* * 问题1,打印的时间看不懂,希望有些格式。。 * 将模式封装到SimpleDateFormat对象中,然后调用format方法让模式格式化指定的date对象。 */SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日,HH:mm:ss,E");String time = sdf.format(d);//用sdf这个模式,格式化d这个日期。。System.out.println("现在的时间是:"+time);}}/**  4 :其他对象:Calendar *  *  public abstract class Calendar extends Object implements Serializable, Cloneable *, Comparable<Calendar>   *   Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR  * 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供 * 了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日 * 的 00:00:00.000,格里高利历)的偏移量。 */import java.util.*;import java.text.*;public class CalendarDemo {public static void main(String[] args){/*Date a = new Date();SimpleDateFormat sdf = new SimpleDateFormat("YYYY");String year = sdf.format(a); System.out.println(year);//有些麻烦*//* * static Calendar getInstance() 使用默认时区和语言环境获得一个日历。  */Calendar c = Calendar.getInstance();/* * 查表法, */String[] mons = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};int index = c.get(Calendar.MONTH);//搞个索引。用来查月份String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};int index1 = c.get(Calendar.DAY_OF_WEEK);sop(c.get(Calendar.YEAR)+"年");//sop((c.get(Calendar.MONTH)+1)+"月");sop(mons[index]);sop(c.get(Calendar.DAY_OF_MONTH)+"日");//sop("星期"+c.get(Calendar.DAY_OF_WEEK));sop(weeks[index1]);///sop(c);}public static void sop(Object obj){System.out.println(obj);}}/** 5 :案例2 *  *练习:1,获取任意2月份有多少天? *思路:根据指定年设置一个时间就是:c.set(year,2,1)//某一年的3月1日 *c.add(Calendar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月的最后一天 *2,获取昨天的现在的这个时间。。 *c.add(Calendar.DAY_OF_MONTH,-1); */import java.util.*;public class CalendarDemo2 {public static void main(String[] args){Calendar c = Calendar.getInstance();//c.set(2013,1,19);c.add(Calendar.YEAR, 2);//向后推移时间。。c.add(Calendar.MONDAY, 3);c.add(Calendar.MONDAY, -3);printCalendar(c);}public static void printCalendar(Calendar c){/* * 注意,这是个数组的格式 */String[] mons = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};int index = c.get(Calendar.MONTH);//搞个索引。用来查月份String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};int index1 = c.get(Calendar.DAY_OF_WEEK);sop(c.get(Calendar.YEAR)+"年");//sop((c.get(Calendar.MONTH)+1)+"月");sop(mons[index]);sop(c.get(Calendar.DAY_OF_MONTH)+"日");//sop("星期"+c.get(Calendar.DAY_OF_WEEK));sop(weeks[index1]);///sop(c);}public static void sop(Object obj){System.out.println(obj);}}/** 6 :MathRandom *  *  public class Random extends Object implements Serializable,此类的实例用于生成伪随机数流。 * 此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改(请参 * 阅 Donald Knuth 的The Art of Computer Programming, Volume 3,第 3.2.1 节)。  *  * static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。  */import java.util.*;public class MathDemo {public static void main(String[] args){//凡是写的方法必须要掌握。。/* * Math.Random();包含头不包含尾 *  * Random下:int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 * 0(包括)和指定值(不包括)之间均匀分布的 int 值。  */Random r = new Random();for(int x=0;x<10;x++){//int d = (int)(Math.random()*10+1);int d = r.nextInt(10)+1;//随即传一个数,包含头,不包含尾,效果同上。但更方便。。sop(d);}}public static void show(){/* *   static double ceil(double a) 返回最小的(最接近负无穷大)double 值,该值 * 大于等于参数,并等于某个整数。即,大于参数a的最小整数 *  *   static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值 * 小于等于参数,并等于某个整数。 即,小于参数a的最大整数。 *  * static long round(double a) 返回最接近参数的 long。 *  * static double pow(double a, double b) 返回第一个参数的第二个参数次幂的值。  */double d = Math.ceil(-12.000289);//返回大于指定数据的最小整数。。double d1 = Math.floor(12.999);//返回小于指定数据的最大整数。。long l = Math.round(12.49);//四舍五入。sop(d);sop("d1="+d1);sop("l="+l);double d2 = Math.pow(2, 4);sop("d2="+d2);}public static void sop(Object obj){System.out.println(obj);}}

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

  详细请查看:http://edu.csdn.net/heima/

原创粉丝点击