Java笔记整理(上)
第一章
将 java 源文件编译为 class 字节码文件
javac HelloWorld.java java HelloWorld //运行
变量命名:
- 允许字母、下划线、数字(不允许写在开头)、美元符号$构成
- 严格区分大小写,不能与关键字相同
关键字:
常量前缀为 final,其余大致和 C++ 相同
Java修饰符:
- 访问控制修饰符 : default, public, protected, private
- 非访问控制修饰符 : final, abstract, static, synchronized
数据类型:
基本数据类型:byte,short,long,int,double,float,boolean,char 没有String,String是一个对象
静态类型:static(一般在类中定义,全局使用同一个数据)
失精度用强制转换,不失精度自动转换。
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
自动转换:
转换从低级到高级。
低 --------------------------------> 高
byte,short,char—>int—>long—>float—>double
逻辑运算符:
用T/F表示 True 和 False
a | b | !a | a&b | a|b | a^b | a&&b | a||b |
T | T | F | T | T | F | T | T |
T | F | F | F | T | T | F | F |
F | T | T | F | T | T | F | F |
F | F | T | F | F | F | F | F |
第二章
窗口的数据读入与显示:
import java.swing.JOptionPane
String r_str= JOptionPane.showInputDialog("请输入圆的半径:"); r= Double.parseDouble(r_str); //窗口读入的都默认为string型 JOptionPane.showMessageDialog(parentComponent,message); //parentComponent一般情况使用null,message为你要输出的信息,方式类似于System.out.println System.exit(0); //记得要有这句话
parseInt() 方法:
int x =Integer.parseInt("9"); double c = Double.parseDouble("5.1"); String s = String.valueOf(12.3); //12.3可用变量代替,常用于输出
输入与输出:
输入方式(import java.util.Scanner):
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i = sc.nextInt();
System.out.println("请输入一个浮点数:");
double j = sc.nextDouble();
System.out.println("请输入一个字符串:");
String s = sc.next();
//String s = sc.nextLine(); //按行读入
sc.close();
主要的两种输出方式:
System.out.println("该数字为"+j);
//println实现输出到控制台,各项数据间用‘+’连接
System.out.printf("该数字为%f",j);
//占位符输出,关于占位符的对应使用,后面放一个表格吧
主要占位符(想知道更多的可以去搜,写题基本上这四个够了):
占位符 | 数据类型 |
%s | string |
%d | int |
%f | double,float |
%c | char |
这里要和C++中的 printf 做个区分,C++中 double 要用 %lf ,而Java的double和float一样使用%f。
伪随机数的使用:
import java.util.Random
double rand1 = Math.random(); //[0,1.0) int rand2 = (int)(Math.random()*2); //{0,1} int rand3 = 1+(int)(Math.random()*10); //1-10的整数
第三章
数组:
创建数组:
dataType[] array = new dataType[Size]; dataType[] array = {value0, value1, ..., valuen}; //二维数组: type[][] typeName = new type[Length1][Length2]; //length2可为空
区别于C++中可以使用 int c[10] ; 这样的句子,Java中需要使用 new 赋予存储空间。
使用 for 循环的时候记得把循环条件用 array.length 表示。
数组的拷贝:
System.arraycopy(Object src, srcPos,Object dest,destPos,int length); //从数组src的第srcPos项开始的length个项目拷贝到目标数组,从destPos的length个位置
数组的排序(import java.util.Arrays):
Arrays.sort(a); //a是一个数组
字符串常用方法:
s1.length(); //返回s1的长度 s1.indexof(s2,i); //在s1内从第i位开始查找s2,返回找到的首地址,若找不到返回-1 s1.contains("7"); //判断s1内是否包含某个字符函数 if(s1.equals(String s2))System.out.println("yes"); //将此字符串与字符串比较 if(s1.equalsIgnoreCase(String s2))System.out.println("yes"); //将此 String 与另一个 String 比较,不考虑大小写
split():
- split() 方法根据匹配给定的正则表达式来拆分字符串
- 注意: . 、 $、 | 和 * 等转义字符,必须得加 \\
- 注意:多个分隔符,可以用 | 作为连字符
- 语法
public String[] split(String regex) //regex为正则表达式分隔符。
- 返回值:字符串数组。
StringBuffer:一种可以修改的字符串
public class RunoobTest{ public static void main(String args[]){ Scanner sc=new Scanner(System.in); String a = sc.next(); StringBuffer str = new StringBuffer(a); //复制a创建StringBuffer int i=0; str.deleteCharAt(i); //i为下表,返回字符 str.append("Runoob.."); //将指定的字符串追加到此字符序列 str.insert(2, "Java"); //将字符串插入此序列中,使J下标为2 str.delete(5,8); //移除此序列的子字符串中的字符。[5,8) str.reverse(); // 将此字符序列用其反转形式取代 String a = str.toString(); //返回字符串表示形式 sc.close(); } }
制作:BDT20040