常用内置对象总结(10)

来源:互联网 发布:战舰世界格拉斯数据 编辑:程序博客网 时间:2024/06/05 15:32


内部类

       内部类可以直接访问外部类的所有成员(包括private),因为内部类持有外部类的引用outer.this;外部类访问内部类必须创建对象访问

1.内部类是一个成员(外部类非静态)

       非静态内部类:其他类访问内部类方法,outer.inner in = new outer().new inner();

       静态内部类:其他类访问内部类方法,outer.inner in = new outer.inner();

       静态内部类,静态方法调用:outer.inner.show(); 类名直接调用

       非静态内部类,静态方法调用:错误,如果内部类中定义静态成员,则该类必须是静态的。

2.局部内部类(外部类的一个方法里定义内部类)

               注意:外部类方法中有变量和内部类,如果内部类中调用方法中的变量,方法中的变量必须用final修饰。

       

3.匿名内部类

               前提:内部类必须继承或实现一个外部类或接口

               new 父类构造器()

               {

                       覆盖父类方法

               }


代码块

       局部代码块:在方法中的代码块,例如

               public static void show(){

                               int x = 2 ;

                               {        //局部代码块

                                       int y = 0 ;

                                       y = x+3 ;

                                       x = y ;

                                       System.out.println(y);        

                               }

                               System.out.println(x);

                       }

               在局部代码块定义的变量只能在代码块里有效,但执行完局部代码块,里面定义的变量和计算代码所占的内存将被释放。局部代码块可以使用外部定义的变量。局部代码块内部不可以定义外部已经定义的变量。不可以添加修饰符,编译错误。

       静态代码块:在类中成员

               静态代码块里只能引用静态成员和方法,再类加载的时候就执行一遍,初始化相应静态变量。

                       static String name ;

                       static {

                                name = "zhangsan";

                                System.out.println(name);

                               }

       构造代码块:在类中成员

               非静态构造代码块里可以引用静态和非静态成员,每次创建对象的时候都执行一次。

                       {

                               this.age = 20 ;

                               System.out.println(age);

                       }

       



System:类中的方法和属性都是静态的。

       1.        long currentTimeMillis();获取当前时间的毫秒值。

               long l1 = System.currentTimeMillis();


       2.        getProperties();系统属性

               System.getProperties();获取当前系统属性,格式:集合Properties<String,String>

               Properties prop = System.getProperties();

               

               Set ss = prop.entrySet();        获得键值对地方法entrySet<key><value>()

               

               Set s = prop.keySet();        获得key键的Set<Object>集合

               

               String s = prop.getProperty("os.name");        通过键获取值 value =  getProperty(key);

               Object ss = prop.setProperty("os.name", "Windows 10");        通过方法设置或修改值 setProperty(key,value) 封装的map的put设置方法


               

       3.        getProperty(key);        

               String s = System.getProperty("file.separator");        获取当前系统文件分隔符 KEY(file.separator)

               String s = System.getProperty("path.separator");        获取当前系统路径分隔符 KEY(path.separator)

               String s = System.getProperty("line.separator");        获取当前系统行分隔符 KEY(line.separator)

               

       4.        setPropertys(Propertys);      setProperty(key,  value);

               System.setPropertys(props);        给系统设置一些属性信息。这些信息是全局,其他程序都可以使用

                System.setProperty(key, value);        给系统设置单个属性信息。这些信息是全局,其他程序都可以使用

               

       5.        gc () ;运行垃圾回收器

       6.        System.in 标准输入流,从键盘输入等

       7.        System.exit(0);推出当前运行的虚拟机。参数为int  , 非0 表示异常退出。

       

Math数学计算公式 全部是静态函数

       1.        Math.random()        产生一个0-1之间的随机数。返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

       2.        Math.ceil(12.56) 返回大于参数的最小整数。pring 13

               Math.floor():返回小于参数的最大整数。

               Math.round():返回四舍五入的整数。

               Math.pow(a,b):a的b次方。

               

       3.        Math.abs(num) ;获取一个数的绝对值  

               Math.max(a, b) ;比较两个数值大小,返回大的一个数

               Math.min(a, b) ;比较两个数值大小,返回小的一个数


Date日期        (很多方法已过时,被Calendar取代)        java.util.Date        

       1.构造函数2个  

               Date();返回当前时间 Fri Oct 02 02:57:36 CST 2015

               Date(long);填入一个long毫秒值,返回那一时刻的时间 Fri Oct 02 02:55:06 CST 2015

       

       2.常用方法        

               after(Date)  测试date日期是否在此之前

               before(Date when) 测试date日期是否在此之后

               compareTo(Date anotherDate) 比较两个日期的先后

               getTime()  获取毫秒值

               setTime(long time) 设置毫秒值

Calendar日历对象是一个封装很多的类。

       1.获取对象

               Calendar c = Calendar.getInstance();//静态引用获取,其中Calendar的静态字段可以使用变量名.进行引用

       2.Calendar对象---->Date对象

               Date d = c.getTime();

          Calendar对象变成毫秒值

               long l = c.getTimeInMillis();

          Date对象---->Calendar对象

               c.setTime()

          毫秒值变成Calendar对象

               c.setTimeInMillis();

       3.常用方法

               c.add(Calendar.DAY_OF_MONTH, x);通过调用字段直接改变值得大小 改(int)X天(DAY_OF_MONTH+X)

               c.set(2012, 2, 1);//设置Calendar对象时间

               c.roll(Calendar.DAY_OF_MONTH, 8);//设置当前日+8,如果大于本月则计算下月几号,但是c月份不变,不会增加

               int year = c.get(Calendar.YEAR);        获取年

               int month = c.get(Calendar.MONTH)+1;        获取月

               int day = c.get(Calendar.DAY_OF_MONTH);                获取日

               int week = c.get(Calendar.DAY_OF_WEEK);                获取星期





DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间        java.text.DateFormat包

|--SimpleDateFormat        允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化

       

       1.构造方法        private DateFormat() ;私有构造器,可以调用自身静态方法获取



       2.获取DateFormat对象引用

               DateFormat.getInstance()获取年月日时分秒格式

               DateFormat.getDateInstance();获取年月日格式

               DateFormat.getTimeInstance();获取时分秒格式

               DateFormat.getDateTimeInstance();获取年月日时分秒格式

               可以使之格式,该类拥有格式字段:

                       SHORT 完全为数字,如 12.13.52 或 3:30pm

                       MEDIUM 较长,如 Jan 12, 1952

                       LONG 更长,如 January 12, 1952 或 3:30:32pm

                       FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST。

               DateFormat.getDateInstance(DateFormat.LONG);

               

               parse(String)        将一个 日期/时间字符串 格式化为Date。

               format(Date date)        将一个 Date 格式化为日期/时间字符串。

               

       3.日期对象和毫秒值之间的转换。

               毫秒值-->日期对象 :

               1,通过Date对象的构造方法  new Date(timeMillis);

               2,还可以通过setTime设置。 setTime(long)

               日期对象-->毫秒值:

               2,getTime方法。

               

       SimpleDateFormat        可以自定义日期格式的子类

               DateFormat dateFormat = new SimpleDateFormat("yyyy---MM---dd");将dateFormat定义为后面的格式,转换一次转换

               Date date = dateFormat.parse("2012---3---2");将日期格式的字符串-->日期对象。

               String str_date = dateFormat.format(new Date());将当前日期对象-->日期格式的字符串。


/* 练习:

* "2012-3-17"到"2012-4-6"中间有多少天?

* 思路:

* 1,将日期格式的字符串转成Date对象。

* 2,将Date对象转成毫秒值。

* 3,相减,在变成天数

       public static void Day_Count() throws ParseException {

               String s1 = "2012--3--17" ;

               String s2 = "2012--4--6" ;

               DateFormat df = new SimpleDateFormat("yyyy--mm--dd");//构造一个自定义的类

               Date d1 = df.parse(s1);

               Date d2 = df.parse(s2);

               long l = (d1.getTime()-d2.getTime());

               long days = Math.abs(l/1000/60/60/24);

               System.out.println(days);

       }



Runtime:        没有构造方法摘要,说明该类不可以创建对象。

               又发现还有非静态的方法。说明该类应该提供静态的返回该类对象的方法。

               而且只有一个,说明Runtime类使用了单例设计模式。

       1.构造方法 调用自身静态方法获取对象

               RunTime r = RunTime.getRunTime();

       2.方法

               r.exec("notepad.exe");        调用方法打开记事本,执行某个程序

               r.exec("notepad.exe E:\\Test01.txt");调用方法打开记事本程序,用改程序执行打开某个地址的txt文件。

       3.查看虚拟机内存

               long l1 = r.totalMemory();返回 Java 虚拟机中一共内存量

               long l2 = r.freeMemory();返回 Java 虚拟机中的空闲内存量

               long l3 = r.maxMemory();返回 Java 虚拟机中试图使用的最大内存量



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 外链多了影响网站排名怎么办 自粘墙纸有气泡怎么办 贴壁纸阴角不力怎么办 自贴墙纸有气泡怎么办 壁纸贴的有起泡怎么办 pos机连接主机失败怎么办 无线pos机连接主机失败怎么办 水墨晕染模板用不了怎么办 申请入驻饿了么失败怎么办 天猫流量大淘宝怎么办 拼多多商家不退款怎么办 苹果手机开流量显示e怎么办 苹果手机有服务流量打不开怎么办 苹果七plus流量打不开怎么办 苹果手机突然打不开流量怎么办 天猫商家迟迟不发货怎么办 苹果7开不开机了怎么办 苹果机黑屏了开不起来怎么办 美团收银机连不上网怎么办 6s换电池后黑屏怎么办 苹果上的软件打不开也删不掉怎么办 苹果手机打开软件打不开怎么办 苹果电脑下载的软件打不开怎么办 苹果手机下载的软件都打不开怎么办 苹7果屏幕黑屏怎么办 苹果6s手机打不开怎么办 苹果ipad密码输入打不开怎么办 苹果平板黑屏了打不开怎么办 苹果6sp电影商城打不开怎么办 苹果6应用商城打不开怎么办 游戏下载好了安装不上怎么办 苹果5s应用商店不见了怎么办 id被停用手机白板打不开怎么办 苹果6s下载不了软件怎么办 苹果下载的软件打不开怎么办 苹果6s下不了app怎么办 苹果手机因为闪退打不开了怎么办 天猫方糖坏了怎么办 天猫魔盒的遥控器坏了怎么办 天猫盒子没声音怎么办 天猫魔盒播放声音很低怎么办