疯狂java讲义第七章笔记

7.1 与用户互动

7.1.1 运行java程序的参数

7.1.2 使用scanner获取键盘输入

Scanner sc=new Scanner(System.in);
hasNextXXX()
NextXXX()
useDelimiter("\n")

7.2 系统相关

获取平台相关属性,调用平台命令来完成特定功能

7.2.1 System类

代表当前java程序的运行平台,程序不能创建system对象,System类提供一些类变量和类方法,直接使用。
identityHashCode(),如果两个对象的identityHashCode 相同,两个对象绝对是同一个对象。任何两个对象的identityHashCode一定不同

7.2.2 Runtime类

Runtime代表Java 程序的运行时环境,应用程序不能创建自己的runtime实例,但是可以通过getRuntime()方法获取与之相关的runtime对象
可以直接单独启动一个进程来运行操作系统的命令。rt.exec("notepad.exe")

7.3 常用类

7.3.1 Object类

object类是所有类的父类,允许把任何对象赋给object类型的遍历。
提供了一个protect修饰的clone() 方法

  1. 继承cloneable接口
  2. 实现自己的clone()方法
  3. 通过super.clone()
    clone(0方法只是对对象里面的实例变量进行简单复制,如果实例变量时引用类型,则只是复制了引用,依然指向之前的实例。

7.3.2 java7新增的Objects类

提供了一些方法来操作对象,大多是空指针安全的

7.3.3 String、StringBuffer和StringBuilder类

string类是不可变的
Stringbuffer stringbuilder是可变的,string builder更常用。

7.3.4 Math类

直接用类名调用方法

7.3.5 java7的ThreadLocalRandom与Random

Random 类专门生成伪随机数,一个构造器使用默认的种子,一个构造器显式传入一个long型整数种子。
rand.nextInt();
rand.nextLong()
当种子相同时,产生相同的数字序列,默认种子属于同一个种子。
常用传入当前时间
Random rand=new Random(System.currentTimeMillis());

7.3.6 BigDecimal类

用于精确表示和计算浮点数。
BigDecimal f1=new BigDecimal("0.05")
BigDecimal f2=BigDecimal.valueOf(9.2);
BigDecimal f3=new BigDecimal(0.09);
第三种直接赋值会损失精度,所以用前两种方法。

7.4 java8的日期、时间类

7.4.1 Date类

7.4.2 Calender类

7.4.3 java8新增的日期、时间包

7.5 正则表达式

是一种强大的字符串处理工具,

7.5.1 创建正则表达式

7.5.2 使用正则表达式

Pattern 和matcher来使用正则表达式
Pattern p=Pattern.compile("a*b");//将一个字符串编译成Pattern对象
Matcher m=p.macher("aaaaab");
boolean b=m.matches();
find()和group() 可以 从目标字符串中依次去处特定字符
while(m.find())
{
m.group();
}
reset()方法可以把现有的matcher对象应用于新的字符序列。

7.6 国际化与格式化

国际化是指应用程序运行时,可根据客户端请求来自的国家/地区,语言的不同而显示不同的界面

7.6.1 java国际化思路

国际化思路是将序列中的标签提示等信息放在资源文件中,程序需要支持哪些国家,语言环境,就对应提供相应的资源文件。
主要通过三个类完成

  1. java.util.ResourseBundle:用于加载国家,语言资源包
  2. java.util.Locale:用于封装特点的国家/区域,语言环境
  3. java.text.MessageFormat:用于格式化带占为符的字符串

7.6.2 java支持的国家和语言

7.6.3 完成程序国际化

native2ascii mess.properties mess_zh_CN.properties生成mess_zh_CN.properties文件

Locale myLocale=Locale.getDefault(Locale.Category.FORMAT);
ResourceBundle bundle =ResourceBundle.getBundle("mess",myLocale);
System.out.print(bundle.getString("hello"));

国际化就是,将不同语言的提示信息(locale)分别以不同的文件存放。
关键类ResourceBoundle 有一个静态方法getBundle(String baseName,Locale locale),该方法将根据locale加载资源文件,而locale封装了一个国家,语言。
ResourceBundle bundle =ResourceBundle.getBundle("mess",myLocale);
会加载mess的系列资源文件之一,到底加载其中的哪个,u取决于mylocale

7.6.4 使用MessageFormat处理包含占位符的字符串

如果需要输出的消息必须包含动态内容,可以使用带占位符的消息。

7.6.5 使用类文件替代资源文件

条件:
类名必须是baseName_laanguage_country
必须继承ListResourceBundle 并且重写getContents() 返回object数组

7.6.6 使用NumberFormat格式化数字

7.6.7 使用DateFormat格式化日期时间

Locale[] locales={locale.CHINA,locale.US};
DateFormat[] df=new DateFormat[16];
df[i*8]=DateFormat.getDataInstance(SHORT,locales[i]);

7.6.8 使用SimpleDateFormat格式化日期

Date d=new Date();
SimpleDateFormat sdf1=new SimpleDateFormat(yyy年中第D天)
string dataStr=sdf1.format(d);

7.7 java8新增的日期、时间格式器

DateTimeFormatter
如何获取DateTimeFormatter对象
这个和前边的区别是时间.ormat(格式)。(格式用DateTimeFormatter创建)
前边的都是(格式).format(日期/数字)(格式用SimpleDateFormat,或者DateFormat或者NumberFormat创建)
一,后2个创建格式的方法
1.locale 创建locale
2 创建这2个类型对应的对象。
3.通过get,,,,()取得对象nf,df。
4.nf.format(内容)

二,第二个创建格式方法
1.先取得日期
2.创建对象的同时定义格式(一般是格式字符串)
3.(格式).format(日期/数字)

三,第一个创建格式的方法
1.创建对象同时定义格式(可以是常量,或者模式字符串)
2.取得时间
3.时间,format(格式)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容