------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
API
定义:指的是应用程序编程接口,,Java中的API指的是JDK中提供的各种功能的Java类
String
定义:String表示字符串,所谓字符串,就是一连串的字符;
构造方法:A:String s = new String();
B:String s = new String(byte[] bys);
C:String s = new String(byte[] bys,int index,int length);
D:String s = new String(char[] chs);
E:String s = new String(char[] chs,int index,int length);
F:String s = new String(String str);
G:String s = "hello";
字符串的特点及面试题
A:字符串一旦被赋值,就不能改变。
注意:字符串的值不能改变,没有说引用变量不能改变。
B:面试题:
String s = new String("hello")和String s = "hello"的区别:
String s = new String("hello")创建了两个对象,一个在堆
内存,一个在常量池,而String s = "hello"只在常量池中
创建一个对象;
单独使用""引号创建的字符串都是常量,编译期就已经确定存储到常量池中;
使用new String("")创建的对象会存储到堆内存中,是运行期新创建的;
使用只包含常量的字符串连接符如"aa" + "bb"创建的也是常量,编译期就能确定,已经确定存储到常量池中;
使用包含变量的字符串连接符如"aa" + s1创建的对象是运行期才创建的,存储在堆中;
成员方法:
判断功能:
boolean equals(Object obj) //判断两个字符串是否相同
boolean equalsIgnoreCase(String str) //判断两个字符串自否相同(不区分大小写)
boolean contains(String str) //判断该字符串是否包含某个字符串
boolean startsWith(String str) //判断该字符串是否是一某字符开头
boolean endsWith(String str) //判断该字符串是否是一某字符结尾
boolean isEmpty() //判断该字符串是否是空;注意:这里是判断对象数据是否为 空,不是判断对象是否null;
获取功能:
int length()//获取该字符串的字符个数
char charAt(int index)//返回字符串给定索引处的字符
int indexOf(int ch)//返回指定字符在字符串中第一次出现的索引
int indexOf(String str)//返回指定字符串在该字符串中第一次出现的索引
int indexOf(int ch,int fromIndex)//返回指定字符在字符串中第一次出现的索引从指定位置开始查找
int indexOf(String str,int fromIndex)//返回指定字符串在字符串中第一次出现 的索引从指定位置开始查找
String substring(int start)//截取字符串,返回从指定位置截取后的一个新字符串
String substring(int start,int end)//截取字符串,从指定位置开始截取到指定指定位置结束
其他功能
替换功能:
String replace(char oldChar,char newChar)//把指定字符替换成给定的字符
String replace(String oldString,String newString)//把指定的字符串替换成给定的新字符串
切割功能:
String[] split(String regex) //根据指定的字符串把字符串切割成字符串数组
去除两端空格功能
String trim()
字典顺序比较功能
int compareTo(String str)
int compareToIgnoreCase(String str)
String小练习
判断字符串中大写小写和数字的个数
计算大字符串包含多少个小字符串
StringBuffer 与 StringBuilder
定义:字符个数可以发生改变的字符串类。字符串缓冲区类。
和String的区别:
String不可变类,一旦String对象被创建,包含在对象中的字符序列是不可变的,直到对象被销毁;
StringBuffer 与 StringBuilder对象则是可变的!
StringBuffer: 是线程安全的;
StringBuilder:是线程不安全的,性能高点,推荐使StringBuilder;(jdk1.5出现)
StringBuffer的字符序列是可变的(通过append等方法操作)
StringBuffer 和 String之间的转换;
String toString() 返回此序列中数据的字符串表示形式。
StringBuffer(String str):以指定的字符串创建StringBuffer对象。
StringBuffer方法
public StringBuilder()构造一个不带任何字符的StringBuilder对象。
StringBuffer(String str) :构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
StringBuffer append(Object o) :将指定的任意类型对象追加到此StringBuffer 对象。
StringBuffer insert(int offset, Object o) :将任意类型参数的字符串表示形式插入此序列中。
StringBuffer delete(int start, int end) :移除此序列的子字符串中的字符。
StringBuffer deleteCharAt(int index):移除此序列指定位置的 char。
我的总结:String 一建立就不能发生改变,StringBuffer和StringBuilder建立后可以发生改变,StringBuffer和StringBuilder不用每次创建对象,可以提高效率
常量池:JVM中一块独立的区域存放字符串常量和基本类型常量
基本类型包装类
基本类型的数据我们只能使用值,不能做更多的操作。为了方便我们操作,
java就把每种基本类型进行了包装
基本类型和包装类的对应关系
byte
short
intInteger
long
float
double
charCharacter
boolean
Integer构造方法
A:Integer i = new Integer(int num);
B:Integer i = new Integer(String s);
注意:s必须是一个由数字字符组成的字符串。
String和int类型的转换
A:String -- int
Integer:
public static int parseInt(String s)
B:int -- String
Integer:
public static String toString(int i)
String:
public static String valueOf(int i)
自动装箱和自动拆箱
A:自动装箱基本类型--引用类型
B:自动拆箱引用类型--基本类型
举例:
Integer i = 100;
i += 200;
Math
public finalclass Math extends Object
以下X表示double,float,int,long
static double abs(double a):求绝对值
static double max(double a,double b):求两个数中最大值
static double min(double a,double b):求两个数中最小值
static double ceil(double a):返回大于该数的最小整数
static double floor(double a):返回小于该数的最大整数
public staticdouble random():返回带正号的 double值,该值大于等于 0.0 且小于 1.0。
和使用new java.util.Random一样
应用:随机产生一个1到100的整数x公式:int x=(int)(Math.random()*100+1);
练习:猜数字小游戏
Random
作用:负责生成伪随机数;
Random(Loog seed) 传入一个种子,使每次产生的随机数都一样
Random() 创建一个新的随机数生成器。
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
Date
作用:处理日期,时间;
大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。
Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(即 1 970 年 1 月 1日 00:00:00 GMT)以来的指定毫秒数。
Calendar
一般使用处理日期和时间的类Calendar;
是抽象类,不能实例化,通过
static Calendar getInstance() 获得一个Calendar对象。
int get(int field):返回指定日历字段值
静态常量:
YEAR 表示年的字段数字。
MONTH 表示月份字段数字,月份范围是[0,11]。
DATE 表示一个月中的某天。
DAY_OF_MONTH 表示一个月中的某天。
DAY_OF_WEEK 表示一个星期中的某天。
HOUR_OF_DAY / HOUR 表示第几小时
MINUTE 表示第几分钟
SECOND 表示第几秒
Date getTime()返回一个表示此 Calendar 时间值的 Date 对象。
void set(int year, int month, int date, inthour, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
abstract void add(int field, int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量。
若 amount为负数,则减去一天,
若 amount为正数 ,则加上一天
SimpleDateFormat
作用:对日前就行格式化
SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造
SimpleDateFormat。
public final String format(Date date)将一个 Date 格式化为日期/时间字符串。
public Date parse(String source) throwsParseException:把字符串source表示的时间按source的格式转成Date对象。
System
System 类包含一些与系统相关的类字段和方法。它不能被实例化,类中所有属性和方法都是static,可直接被System调用。
常用方法:
static void exit(int status) 终止虚拟机的运行.对于发生了异常情况而想终止虚拟机的运行,传递一个非0数值,对于正常情况下退出系统传递0值;
该方法实际调用的是Runtime.getRuntime().exit(intstatus);
static void arraycopy(Object src, intsrcPos, Object dest, int destPos, int length)数组拷贝
static long currentTimeMillis()返回以毫秒为单位的当前时间。
String getenv(String name) 获得指定的环境变量;
static void gc() 运行垃圾回收器。
实际上调用了 Runtime中的gc()方法;
Runtime.getRuntime().exec("notepad");
static Properties getProperties() 取得当前的系统属性。
static String getProperty(String key)取得指定键指示的系统属性。
static String getProperty(String key,String def) 获取用指定键描述的系统属性,def表示默认信息。