前面的琐碎知识点

  1. 类是Java程序最基本的构件,每个Java程序都由一个或多个类组成。
  2. Java的每个源文件最多包含一个共有类,该类的名字一定要与文件名完全匹配。
  3. 访问控制修饰符:public , private , protected 和 package
  4. 每一个Java application都包含带有main方法的类,main方法完整地描述了对应application的主流程,application开始运行时便执行main方法中的指令。
  5. 程序开始时,没有任何对象。因此,程序的第一个方法必须是静态方法。(引用静态方法的时候不需要创建对象)
  6. main方法的参数(命令行参数),对于main方法必不可少。
  7. Java标识符命名规则:
  • 标识符由字母、数字、下划线、美元符号”$”组成
  • 第一个字符不能是数字
  • 标识符对大小写敏感
  • 标识符没有长度限制
  • 约定俗成:不能与关键字重名。
  1. 事先定义的,用做专门用途的字符串叫关键字,Java所有的关键字都是小写英文。
  2. final 定义常量10。
  3. Java字符采用Unicode编码,每个字符占两个字节,因此可以用16进制编码形式表示。
  4. Boolean类型数据只允许取值true或false,不可以0或非0的整数代替true和false。
  5. 数据类型的转换
  • 自动类型转换:
    对于基本类型数据按精度从低到高的顺序为:
  • 当把级别低的变量的值赋给级别高的值时,系统自动进行数据类型转换。
  • 强制类型转换:(类型)
  1. 显示对话框,需要先import javax.swing.JOptionPane;
    • JOptionPane.showMessageDialog(null, ); 显示消息对话框窗体
    • JOptionPane.showInputDialog(); 显示一个输入对话框,接受一个由用户输入的String,这时候一般需要如下转换函数
  • Integer.parseInt() 将 String转化成 int
  • Float.parseFloat() 将 String 转化成 float
  • Double.parseDouble() 将 String 转化成 double
  1. System.out.printf(“占位符”,x);
  2. 包是具有相关用途的类的集合,Java标准库中的所有类都包含在包里。 import语句用于导入包中的类以备程序使用。 import 包名.类名; java.lang包会自动导入。
  3. 在程序中只要调用了显示对话框的方法,都需要在main方法末尾添加System.exit(0);
  4. 运算符优先级:
  5. Java中的byte , short , char 在进行算数运算时都会提升为int类型。
  6. 运算时最后的取值看精度最高的类型。
  7. 精度低赋值给精度高会自动转换类型,但是精度高的赋值给精度低的需要强制转换,这点Java跟C/C++不太一样。

3.1 数组

  1. 数组变量属于引用类型,数组也可以看成是对象,数组中每个元素相当于对象的成员变量。
  2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
  3. Java和C/C++不同,数组不能在声明阶段制定数组长度。
  4. 在Java里,系统会帮你初始化数组:对象引用型数组的值是null。
  5. 当编译器遇到一个包含初始值列表的数组声明时,会通过计算列表中初始值的个数来确定数组的长度。
  6. 注:Java里,数组名.length(该数组对象实例的一个属性而不是方法)表示数组的容量(数组元素个数),区别于字符串的.length()函数。
  7. Math.random()返回值是浮点数的(0,1),注意在某些情况要强制转换再赋值。
  8. 元素为引用类型的数组时,当中每一个元素都需要实例化。
  9. 多维数组的声明和初始化按从高纬到低纬的顺序进行,创建时不可以只有第二个[]的长度。
  10. for each循环(强循环)
for(type element: arr)//一重循环
{
    System.out.println(element);
}
for(type[] row : arr2)//二重循环
{
    for(type element: row)
    {
        System.out.println(element);
    }
}

3.2 字符串

  1. java.lang.String代表不可变的字符序列(字符串常量),用String表示,由字符组成的序列,最常用的一种引用数据类型。
  2. 注意:String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了。如果需要对字符串做很多修改,那么应该选择使用StringBuffer或StringBuilder类。
  3. 理解一下创建String类型在字符串常量池,堆,栈的样子。点击此处链接
  4. 区别一下字符串比较中“==”和“str.equals(str1)”的区别,前者是比较字符串在内存中的地址,后者是先比较地址,如果不一致就比较字符串。
  5. 字符串常用的一些方法:
  • public char charAt(int index)
    返回字符串中第index个字符
  • public int length()
    返回字符串的长度

  • public int indexOf(String str)
    返回字符串中出现str的第一个位置

  • public int compareTo(String str)
    返回字符串字典序的比较结果,返回整型数:0,>0,<0

  • public boolean equals(String another)
    比较字符串与another是否完全一样(比较字符串内容,区别于==)

  • public boolean equalsIgnoreCase(Stirng another)
    比较字符串与another是否一样(忽略大小写)

  • public String replace(char oldChar,char newChar)
    在字符串中用newChar字符替换oldChar字符,长生一个新的字符串

  • public boolean startsWith(String prefix)
    判断字符串是否以prefix字符串开头

  • public boolean endsWith(String suffix)
    判断字符串是否以suffix字符串结尾

  • public String toUpperCase()
    一个字符串转为该字符串的大写形式

  • public String toLowerCase()
    一个字符串转为该字符串的小写形式

  • public String substring(int beginIndex)
    返回该字符串从beginIndex开始到结尾的子字符串

  • public String substring(int beginIndex,int endIndex)
    返回该字符串从beginIndex开始到endIndex的子字符串

  • public String trim()
    去掉字符串开头和结尾的空格

  1. 数值转换为字符串:
  • String.valueOf(byte n)

  • String.valueOf(int n)

  • String.valueOf(float n)

  • String.valueOf(double n)

  1. 字符串转换为数值:
  • int x=Integer.parseInt(str);

  • float n=Float.parseFloat(str);
    或 float n=Float.valueOf(str).floatValue();

  • double b=Double.parseDouble(str);
    或 double b=Double.valueOf(str).doubleValue();

  1. 字符串与字节数组的互换

    • 字符串转化为字节数组:byte d[]=字符串对象.getBytes();
    • 字节数组转化为字符串:String(byte[],int offset,int length) offset为数组起始位置,length为取的字节个数 eg:String s=new String(d,8,4);
  2. java.lang.StringBuffer代表可变的字符序列

  3. StringBuffer类常用的一些方法

  • 添加字符序列并返回:
  • public StringBuffer append(String str)
  • public StringBuffer append(char[] str,int offset,int len)
  • public StringBuffer append(char ch)
  • 指定位置插入字符序列并返回:
  • public StringBuffer insert(int offset,String str)
  • public StringBuffer insert(int offset,double d)
  • 删除start开始到end-1为止的一段字符序列,并返回
  • public StringBuffer delete(int start,int end)
  • 将字符序列逆序
  • public StringBuffer reverse()
  1. StringBuffer类的函数都是直接对本身字符串进行修改了。只能通过构造函数来建立,不能通过赋值符号对他赋值
  2. String str=new String(“welcome to”);
    str+=”here”;
    处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后再将StringBuffer toString();
  3. 字符分析器和正则表达式随缘吧。