1、字符串类:String类型时java中表示字符串的一种类型,是平时使用最多的类型。所有的输入输出都是针对字符串,类型的变化是程序内部的需要。以为String是用得最多的数据类型,所以java中有许多针对它的特殊设计。

1)语法上,它是唯一一个可以直接赋常量值得引用数据类型

String str = “hello”;

2)String常量的内存中有特殊处理:a. String常量是对象

               b.String常量在加载期即放入内存中(数据              

                  段的字符串常量池)

3)String对象内容不可变,对String对象做任何内容改变都是得到一个新的

     String对象

4)String提供了非常丰富的API

a.  String与字符数组相关的操作

String str = “hello”;

char[]array = str.toCharArray();把String转换为char[]

int length = str.length();得到字符串长度

char c = str.charAt(0);根据下标得到字符串的第几个字符

int postion = str.indexOf(“l”);根据下标得到字符在String中首次出

                        现的位置,没有就返回-1

postion = str.lastIndexOf(“l”);根据下标得到字符在String中最后出

                         现的位置,没有就返回-1

String subStr = str.substring(1,3);//根据位置截取字符串,前闭后开

                                 的区间,得到的是“hl”。

subStr = str.substring(2);重载方法,只给起始位置,一直截取到最后

b.  String与比较相关的操作

System.out.println("hello".equals(str));

System.out.println("hello".equalsIgnoreCase(str));忽略大小写比较相等

System.out.println(str.compareTo("helloworld"));//区分大小写//字符串是可以比较大小的,使用的是字典顺序。

System.out.println(str.compareToIgnoreCase("helloworld"));//不区分大小写

特点:结果是第一个字符串减第二个字符串的差值,得到正数说明第一个比第二个大,得负数说明第一个比第二个小

差值首先是返回第一个对不同的字符的ASCII之差,如果某个字符串比较完了,它的每个字符都和对象相同,则返回两个字符串的长度之差

只有当每个字符都一样,长度也一样才会返回0,

c.  与String内容相关的

String upStr = str.toUpperCase( );//把String转换为全大写

String dnStr = str.toLowerCase( );//把String转换为全小写

String newStr = str.replace('l','L');//替换字符串中的某个字符为另一个字符

newStr = “Helloworld”.replace("l","fuck");//替换字符串中个的某个字符为另一个字符串,将l换成fuck

newStr = “Helloworld”.replaceAll("l[od]","fuck");//根据正则表达式进行替换,将lo、ld换成fuck

String hi = “hello”.concat(“world”);//把一个String拼接到另一个的末尾

System.out.println(hi.contains("wo"));//查看一个String是否在另一个String当中

d.  3个特殊方法:

trim()---去掉字符串前后的空格,不会去掉中间的空格

String input = “   hel   lo    ”;

String newInput = input.trim();

结果为:“hel  lo”;

matches()---正则表达式比较

正则表达式(regex):用来规定一个字符串样式的模板,其本身也是字符串形式----1、[ ]:一个方括号表示一个字符,里面填上这个字符所允许的符号

 2、{ }:表示前面表达式重复的次数

{m,n}表示至少出现m次,最多n次

{m,}表示至少出现每次,最多不限次数

{m}表示只能出现m次

(表达式1|表达式2|表达式3);可选  “8320”([0-9]{4}|110|120|114)"

8320后面可接0-9,出现4次,或者110,或者120,或者114

split()---字符串拆分

如果以分隔符开头,会正常拆分;如果以分隔符结尾,则后面不会拆分

分隔符可以用正则表达式表示

String birthday = “-1992-6-8”;

String[ ] strArray = birthday.split(“-”);

String最大的问题就是内容不可变

String str1 = “hello”;

String str2 = “world”;

String str3 = new Scanner(System.in).nextLine()

当需要操作到大量的字符串拼接时,String就会对性能产生影响

由此提出StringBuilder:也是JDK中提供的字符串类型,专门用来解决内容不可变的问题

它与String没有任何继承关系

StringBuilder当我们做大量的String拼接时,会出现性能的消耗(内容可变的) ,此时选用StringBuilder或StringBuffer的append 或insert方法解决String的拼接问题

StringBuilder sb = new StringBuilder();

StringBuilder sb2 = sb

sb.append("world");//在尾部进行拼接

sb.insert(5," ");//在中间进行拼接

结果为:sb = sb2 = hello world

StringBuffer跟StringBuilder一样,内容可变,用来解决String拼接的问题

两个提供的API都是一模一样的

StringBuilder是线程不安全的;

StringBuffer是线程安全的;

(1、凡是线程安全的,由于执行了同步动作,导致效率低,线程不安全的没有执行同步操作,所以效率相对高;2、线程安全性问题只会在多线程的特殊情况下才会出现(不是说多线程一定会出现),所以没有安全问题的多线程情况或单线程情况优先使用StringBuilder)

2、包装类

每一个基本数据类型都有一个包装类与之对应,提供大量的属性和行为,

基本<————>包装类对象<————>String  (三种相互转换)

3、时间日期类

直接调用Date的无参构造得到的就是表示当前日期时间的Date对象

直接打印Date对象,得到的来自于toString方法的结果并不可用

Date方法中单独获取和设置年、月、日、时、分、秒的所有方法都已过时

Date的使用:1、方便快速的获取当前日期时间的Date对象:

    2、配合一个SimpleDateFormate的类,完成根据我们使用要   

         求格式化时间日期字符串

不方便:1、没有办法设置一个除了当前时间日期以外的特定日期时间---使用Calendar类来解决

Date date = new Date();

SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss");设置时间日期格式

String result = sd.format(date);

System.out.println(result);

采用 了工厂模式,无需使用者产生对象,由Calendar提供工厂方法生成对象,我们只管使用就可以了

Calendar cal = Calendar.getInstance();

cal.set(Calendar.MONTH,3); 给某个字段设置一个特定值(充分体现了设计符号常量的意义)

cal.set(1949,10,1);  根据年月日设置特定日期,月份需要-1处理

结论:1、获取当前日期时间,用Date

    2、获取指定日期时间,用Calendar

    3、获取格式化日期时间字符串,用Date配合SimpleDateFormat

    4、掌握Calendar和Date之间的转换

4、Properties

是一个集合类(是用来装东西的容器)。

map ----映射

Properties props = new Properties();  产生了一个容器

   K(键)  V(值)

props.setProperty("001","丁1");放数据的时候是KV对,成对存放

props.setProperty("002","丁2");

props.setProperty("002","丁22");放入重复键,相当于在做修改

String value = props.getProperty("001");  获取数据

value = props.getProperty("003");  如果键不存在不会报异常,而是返回null

props.remove("001"); 删除数据

Properties:相对于其他映射集合来说,最大的特点就是可以操作属性文件(一种用键值对表示的特殊文件)

//将文件存放在D:/test.properties,不加D,则存放在对应的工程文件中

存文件,如果文件不存在会在相应位置新建文件,并放入集合中所有的数据

如果文件存在,就会把集合中的所有数据存入,覆盖掉文件已有的数据

props.store(new FileOutputStream("D:/test.properties"),"第一次添加的数据");

读取文件:如果文件不存在,则会报错

Properties np = new Properties();

np.load(new FildInputStream)

5、System类  

System.in   代表当前系统提供的标准输入流---往往特指控制台输入

用法:new Scanner(System.in)

System.out 代表当前系统提供的标准输出流---往往特指控制台输出

System.err  代表当前系统提供的错误流---也是指代控制台输出,红色字符

表示错误

System.err.println(”发生了一个错误“)

System类的常用方法:

System.gc();----召唤垃圾回收:不是操控,只能召唤

System.arraycopy();----完成数组拷贝

System.exit(0);----完成虚拟机的关闭(参数表示结束时的状态码,按惯

例非0表示异常结束)

//返回当前毫秒数

System.currentTimeMillis();---返回当前计算的时间,类型为long

long now = System.currentTimeMillis();

System.out.println(now);

当前时间原点:1970/1/1    00.00.00.000

//获取系统属性

String javaHome = System.getProperty("java.home");

System.out.println(javaHome);

Runtime类:

转载于:https://www.cnblogs.com/wuhao-bky/p/6426877.html

JavaOO 常用类新增相关推荐

  1. Java基础篇:常用类

    文章目录 1.字符串相关的类 1.1 String类及常用方法 String的特性 String对象的创建 字符串对象是如何存储的 String使用陷阱 String常用方法 1.2 StringBu ...

  2. 时间日期类JAVA包含地区属性_Java常用类 | 时间和日期类

    开发中经常涉及到时间与日期,记录下Java中与时间和日期相关的API JDK8之前与时间日期相关的类 java.lang.System类 System类提供了一个公共的静态方法currentTimes ...

  3. 返回值 包装类_(九)Java常用类

    (九)Java常用类 String类 概述 /*String:字符串,使用一对""来表示. * 1.String声明为final,不能被继承. * 2.String实现了Seria ...

  4. 「JavaSE」- 常用类

    常用类 Object类 Object是所有类的父类,任何类都默认继承Object.理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Obje ...

  5. 舔砖加瓦(java)之java常用类

    添砖加瓦(java) 常用类 前言: 大家好我是kdy丶 这里写目录标题 添砖加瓦(java) ***常用类*** 前言: 一丶字符串相关的类 1丶String类 2丶StringBuffer和Str ...

  6. 1.javaSe常用类

    一 常用类之String类 1 String类概述 1.1 String类简介 ​String类代表字符串类,java程序中所有的字符串文字都作为该类的实例,字符串不变,他们的值在创建之后不可被更改. ...

  7. Java高级编程之常用类

    一.String类 java.lang.String类的使用 (一)概述 String: 字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...

  8. Java自学基础 常用类

    Java常用类 一.字符串相关的类 String的特性 String对象的创建 String str1 = "abc";与String str2 = new String(&quo ...

  9. Java常用类全面解析(含部分源码)

    常用类 文章目录 常用类 字符串相关的类 String 类 说明 案例 String 的实例方式 String 中的常用方法 案例一 案例二 案例三 String 类与其它结构之间的转换 小复习-与基 ...

  10. 重学JavaSE 第11章 : 常用类API、String、日期API、比较器、BigDecimal、System等

    文章目录 一.字符串相关的类 1.1.String类的概述 1.2.理解String的不可变性 1.3.String不同实例化方式的对比 1.4.String不同拼接操作的对比 1.4.1.Strin ...

最新文章

  1. ionic + cordova+angularJs 搭建的H5 App完整版总结
  2. 死脑筋要活用(我只放贴图)01
  3. C#高性能大容量SOCKET并发(十):SocketAsyncEventArgs线程模型
  4. 二线城市IT人员如何发展
  5. OpenCV视频中的人脸标志检测
  6. OpenGL创建hello Window窗口
  7. python 获取当前文件夹下所有文件名
  8. java种子填充_种子填充实例运行出问题
  9. 电商app中的商品列表UX框架要如何设计?
  10. 大数据之-Hadoop3.x_MapReduce_自定义outputformat案例完善执行---大数据之hadoop3.x工作笔记0123
  11. mysql explain desc_MySQL中EXPLAIN结果的参数详解
  12. 使用一般处理程序HTTPHandler下载文件
  13. c 语言随机生成迷宫,[原创]递归随机迷宫生成算法详解
  14. 基于RV1126平台imx291分析 --- v4l2_pipeline_pm_use
  15. 微信隐藏功能系列2:微信语音怎么转发?
  16. part-7 共模抑制比CMRR
  17. 办公软件是计算机吗,什么是办公软件_IT /计算机_资料
  18. CINTA:陪集与拉格朗日定理
  19. 人像抠图——基于深度学习一键去除视频背景
  20. 微信如何用软件测试是否被拉黑,怎么知道微信里对方把自己拉黑或删除了?微信被好友拉黑检测方法...

热门文章

  1. 支付宝生活号,同时出现俩网址,到底哪个真哪个假?
  2. 百度前端技术学院-task1.8源代码以及个人总结
  3. 启动Eclipse 报错:java was started but returned exit
  4. (转)Inno Setup入门(七)——提供安装语言选项
  5. SharePoint:扩展DVWP - 第4部分:将DVWP操作链接转为按钮
  6. 【CCNA考试】2010-05-24-武汉-872(PASS)
  7. 一次接口超时排查,花费了我两个星期。。
  8. python全栈薪资这么高,你知道大厂面试都问什么吗?
  9. 双机高可用、负载均衡、MySQL (读写分离、主从自动切换)架构设计
  10. 4亿线上用户性能保证:Linked Redliner架构解密