Java基础-,
Java基础-,
API:指的是应用程序编程的接口。JDK中提供了各种功能的Java类,以下是我对这些类的一些总结。
第一讲:Sring类
一、概述
String是字符串的类类型,用于描述字符串事物。字符串是一个特殊的对象。特殊之处就在于:Stings= new String();和String s1=””;两种写法都是在创建对象,使用起来一样。二、特点
字符串最大的特点就是:一旦被初始化就不可以被改变。
三、String类常见操作
1、获取
int length():获取长度。
char charAt(int index);根据位置获取位置上的某个字符
int indexOf(int ch);返回的是ch在字符串中第一次出现的位置。//传入的是字符对应的ASCII码。//如果没有找到,返回-1。
int indexOf(int ch,int fromIndex);从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str);返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastIndexOf();反向索引
2、判断
boolean contains();判断字符串中是否包含某一个子串,等价于indexOf
boolean ifEmpty();字符串中是否为空,为空返回0
boolean startsWith();字符串是否是以指定内容开头
boolean endsWith();字符串是否是以指定内容结尾
boolea nequals();判断字符串内容是否相同,复写了Object类中的equals方法
3、转换
String (char[]);将字符数组转成字符串
char[] toCharArray();将字符串转成字符数组
String (byte[]);将字节数组转成字符串
String(byte[],offset,count);将字节数组中的一部分转成字符串。count表示个数。
byte[] getBytes();将字符串转成字节数组
4、替换 和比较
String replace(oldchar,newchar);返回的是一个新字符串。如果要替换的字符不存在,返回的还是原字符串。
String toUpperCase();将字符串转成大写
String toLowerCase();将字符串转成小写
String trim(); //将字符串两端的多个空格去除
int compareTo(String);对两个字符串进行自然顺序的比较
5、切割
String[] split(regex);regex是一个切割规则
6、子串,获取字符串中的一部分
String substring(begin);从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。
String substring(begin,end);包含头,不包含尾。
第二讲:StringBuffer类和StringBuilder类
一、概述
StringBuffer是一个容器,字符串的组成原理就是通过该类实现的。StringBuffer可以对字符串内容进行增删改查等操作,很多方法和String相同。
二、特点
1、而且长度是可变化的。
2、可以直接操作多个数据类型。
3、最终会通过toString方法变成字符串。
三、常见功能
1、存储
StringBuffer append():将指定数据作为参数添加到已有数据的结尾处。
StringBuffer insert(intoffset ,数据):可以将数据插入到指定offset位置。
2、删除
StringBufferedelete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
清空缓冲区:对象.delete(0,对象.length());
3、获取
char charAt(int index);返回此序列中指定索引处的char
值
int indexOf(String str);返回第一次出现的指定子字符串在该字符串中的索引。
int lastIndexOf(String str);返回最后一次出现的指定子字符串在此字符串中的索引。
int length();返回长度(字符数)。
String substring(int start,int end);
4、修改
StringBuffer replace(int start,int end,String str);
void setCharAt(int index,char ch);
5、反转
StringBuffer reverse();
在JDK1.5版本之后出现了StringBuilder。StringBuilder的方法跟StringBuffer一样,在用法上两者有什么区别呢?StringBuffer:是线程同步的。有锁。效率低,多线程建议使用StringBuffe
StringBuilder:是线程不同步的。无锁。效率高,单线程建议使用 StringBuilder
程序示例:
public static void main(String[] args) {
System.out.println("1、添加--------------------");
add();
System.out.println("2、删除--------------------");
dele();
System.out.println("3、修改--------------------");
alter();
}
public static void add() {
StringBuilder sb=new StringBuilder();//定义一个字符串缓冲区
sb.append("I came,heima!");
System.out.println("append添加结果为: "+sb);//在末尾添加字符串
sb.insert(7, "it");
System.out.println("insert添加结果为: "+sb);//在指定位置添加字符串
}
public static void dele() {
StringBuilder sb=new StringBuilder("I came,this.itheima!");
sb.delete(8, 12);
System.out.println("delete删除指定范围结果为: "+sb);
sb.deleteCharAt(7);
System.out.println("deleteCharAt删除指定位置结果为: "+sb);
sb.delete(0, sb.length());//清空缓冲区
System.out.println("清空缓冲区结果为: "+sb);
}
public static void alter() {
StringBuilder sb=new StringBuilder("I came,iiheima!");
sb.setCharAt(8, 't');//修改指定位置字符
System.out.println("修改指定位置字符结果为 : "+sb);
sb.replace(7, 9, "ti");//替换指定位置字符串
System.out.println("替换指定位置字符串结果为 : "+sb);
System.out.println("字符串翻转结果为: "+sb.reverse());
}
}
程序运行结果为:
第三讲:System类与Runtime类
一、System类
1、概述
描述系统信息的类,方法和属性都是静态的,使用时该类时直接用System调用即可。
2、System类常用方法
static void exit(int status) ;终止当前正在运行的Java 虚拟机。
staticvoid gc() ;运行垃圾回收器。
staticProperties getProperties() ;确定当前的系统属性 。
static void currentTimeMillis() ;返回以毫秒为单位的当前世界。
staticString getProperty(String key, String def); 获取用指定键描述的系统属性。
staticvoid setProperties(Properties props) ;将系统属性设置为 Properties 参数。
static StringsetProperty(String key, String value) ;设置指定键指示的系统属性程序示例:
//计算程序在运行时所消耗的时间。
public class Test_3 {
public static void main(String[] args) {
long startTime=System.currentTimeMillis();
int sum=0;
for (int i = 0; i < 1000000000; i++) {
sum+=i;
}
long endTime=System.currentTimeMillis();
System.out.println("程序运行时间为:"+(endTime-startTime)+"毫秒");
}
}
程序运行结果:
二、Runtime类
1、概述
概念:每个 Java 应用程序都有一个Runtime
类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime
方法获取当前运行时。
特点:该类没有构造函数,也就是它不能直接创建对象。该类是单例设计模式,保证在内存中只有一个对象。
2、Runtime类常用方法
process exec(String command) ;在单独的进程中执行指定的字符串命令。
void gc(); 运行垃圾回收器。
static Runtime getRuntime() ;返回与当前 Java 应用程序相关的运行时对象。
void exit(int status) ;通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。
程序示例:
//打开Windows自带的笔记本程序
public class Test{
public static void main(String[] args) throws IOException {
Runtime rt=Runtime.getRuntime();
rt.exec("notepad.exe");
}
}
第四讲:Math类与Random类
一、Math类
1、概述
Math
类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
2、Math类常用方法
System.out.println("计算绝对值得结果为: "+Math.abs(-1));
System.out.println("求大于参数的最小整数: "+Math.ceil(3.4));
System.out.println("求小于参数的最小整数: "+Math.floor(-4.1));
System.out.println("四舍五入得结果为: "+Math.round(3.7));
System.out.println("求两个数较大值得结果为 : "+Math.max(4, 5));
System.out.println("求两个数较大值得结果为 : "+Math.min(4, 5));
System.out.println("生成一个大于等于0.0小于1.0随机值为 : "+Math.random());
运行结果为:
二、Random类
1、概述
此类的实例用于生成伪随机数流。
2、Random类常用方法
A:构造方法
Random();创建一个新的随机数生成器。
Random(long seed) ;使用单个 long 种子创建一个新的随机数生成器。
B:成员方法
int nextInt() ;返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n) ;返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
程序示例:
//生成10个1-20内的随机不重复的整数。
public class Test_4 {
public static void main(String[] args) {
Random r=new Random(); //创建Random实例对象
HashSet<Integer> hs=new HashSet<Integer>(); //创建HashSet集合,因为程序要求数据不能重复
while(hs.size()<10){
hs.add(r.nextInt(20));
}
System.out.println(hs.toString());
}
}
程序运行结果:
第五讲:时间类
一、Date类
1、概述
类 Date
表示特定的瞬间,精确到毫秒。
在类 Date
所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:
年份 y 由整数 y - 1900 表示。
月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
日期(一月中的某天)按通常方式由整数 1 至 31 表示。
小时由从 0 至 23 的整数表示。
分钟按通常方式由 0 至 59 的整数表示。
秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。
2、常用方法
A:构造方法
Date();分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date); 分配Date对象并初始化此对象,以表示自从标准基准时间。B:成员方法
int compareTo(Date anotherDate) 比较两个日期的顺序。
boolean equals(Object obj) 比较两个日期的相等性。
二、Calendar类
1、概述
Calendar类是一个抽象类,用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特定部分,比如年、月、日、时、分和秒等。
2、常用方法
int get(int field) ;返回给定日历字段的值。
void add(int field, int amount) ;根据日历的规则,为给定的日历字段添加或减去指定的时间量。
void set(int field, int value); 将给定的日历字段设置为给定值。
void set(int year, int month, int date, int hourOfDay, int minute, int second) ;设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
程序示例:
//获取当前日期和时间
public class Test_3 {
public static void main(String[] args) {
//获取表示当前时间的Calendar对象
Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR); //获取当前年份
int month=c.get(Calendar.MONTH)+1;//获取当前月份
int date=c.get(Calendar.DATE); //获取当前日
int hour=c.get(Calendar.HOUR); //获取当前时
int minute=c.get(Calendar.MINUTE); //获取当前分
int second=c.get(Calendar.SECOND); //获取当前秒
System.out.println("当前时间为 : "+year+" 年 "+month+" 月 "+date+" 日 "+hour+" 时 "+minute+" 分 "+second+" 秒 ");
}
}
程序运行结果:
第六讲:包装类
一、概述
为了更方便的操作每个基本数据类型,java提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象,可以在对象中定义更多的功能操作该数据。
二、基本数据类型和对象类型的对应
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
三、常用方法
Integer.toBinaryString(); 以二进制(基数 2);无符号整数形式返回一个整数参数的字符串表示形式。
Integer.toOctalString();以八进制(基数 8);无符号整数形式返回一个整数参数的字符串表示形式。
Integer.toHexString();以十六进制(基数 16);无符号整数形式返回一个整数参数的字符串表示形式。
static int Integer.parseInt(String s) ;将字符串参数作为有符号的十进制整数进行解析,字符串必须是int型范围内的数字字符串 。
static int Integer.parseInt(String s,int basic);使用第二个参数指定的基数,将字符串参数解析为有符号的整数. 字符串必须是int型范围内的数字字符串。
int intValue() ;以int类型返回该Integer的值。
static Integer valueOf(int num) ;返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(Strings, int radix) ;返回一个Integer对象,该对象中保存了用第二个参数提供的基数,进行解析时从指定的String中提取的值。
程序示例:
/*
"17 8 78 8 -12 96 52 1 -22"
要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。
-22 -12 1 8 8 17 52 78 96
思路:1、将字符串切割为字符串数组
2、将字符串数组转换为整数类型数组
3、对整数类型数组进行冒泡排序
4、将排序后的整数类型数组转换为字符串
*/
public static void main(String[] args)
{
String s="17 8 78 8 -12 96 52 1 -22";
print(s);
print(stringSort(s));
}
public static String stringSort(String s)
{
//将字符串切割成字符串数组
String[] str=s.split(" ");
//将字符串数组转换为整数类型数组
int[] arr=stringToInt(str);
// 对整数类型数组进行冒泡排序
bubbleSort(arr);
//将排序后的整数类型数组转换为字符串
return intToString(arr).toString();
}
// 将字符串数组转换为整数类型数组方法
private static int[] stringToInt(String[] str)
{
int[] arr=new int[str.length];
for(int x=0;x<str.length;x++)
{
arr[x]=Integer.parseInt(str[x]);
}
return arr;
}
//对数组进行冒泡排序
private static void bubbleSort(int[] arr)
{
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length-x-1; y++)
{
if(arr[y]>arr[y+1])
Arrays.sort(arr);
}
}
}
//将整数类型数组存放到一个StringBuiler容器中
private static StringBuilder intToString(int[] arr)
{
StringBuilder sb=new StringBuilder();
for (int x=0;x<arr.length-1; x++)
{
sb.append(arr[x]+" ");
}
sb.append(arr[arr.length-1]+"");
return sb;
}
//打印字符串
private static void print(Object obj)
{
System.out.println(obj);
}
//遍历数组
private static void print(int[] arr)
{
for (int x=0; x<arr.length;x++ )
{
System.out.print(arr[x]+"\t");
}
System.out.println();
}
}
程序运行结果:
相关文章
- 暂无相关文章
用户点评