数据类型:
整数
byte、short、int、long 四种基本数据类型表示整数,需要注意的是 long 类型,使用 long 修饰的变量需要在数值后面加上 L 或者 l,比如 long num = 1L;,一般使用大写 L,为了避免小写 l 与数值 1 混淆。
浮点数
float 和 double 类型表示浮点数,即可以表示小数部分。需要注意的是 float 类型的数值后面需要加上 F 或者 f,否则会被当成 double 类型处理。double 类型的数值可以加上 D 或 d,也可以不加。
char 类型
char 类型用于表示单个字符。需要将字符用单引号括起来char a = 'a',char 可以和整数互相转换,如果字符 a 也可以写成char a = 97。也可以用十六进制表示char a = '\u0061'。
boolean 类型
boolean 类型(布尔类型)用于表示真值 true或者假值 false,Java 中布尔值不能和整数类型或者其它类型互相转换。
String
String s0 = "abc"; String s1 = new String("abd");
1.字符串标识符.length(); 返回一个 int 类型的整数(字符串中字符数,中文字符也是一个字符)。
2.equals() 方法,该方法的作用是判断两个字符串对象的内容是否相同。如果相同则返回 true,否则返回 false。
equalsIgnoreCase() 意义同上 忽略大小写
使用 "==" 比较的是两个对象在内存中存储的地址是否一样。
3.字符串连接有两种方法:
- 使用 +,比如String s = "Hello " + "World!"。
- 使用 String类的concat()方法
4.charAt() 方法的作用是按照索引值(规定字符串中第一个字符的索引值是 0,第二个字符的索引值是 1,依次类推),获得字符串中的指定字符。
字符串常用提取方法
| 方法 | 返回值 | 功能描述 | 
|---|---|---|
| indexOf(char ch) | int | 搜索字符 ch 第一次出现的索引 | 
| indexOf(String value) | int | 搜索字符串 value 第一次出现的索引 | 
| lastIndexOf(char ch) | int | 搜索字符 ch 最后一次出现的索引 | 
| lastIndexOf(String value) | int | 搜索字符串 value 最后一次出现的索引 | 
| substring(int index) | String | 提取从位置索引开始到结束的字符串 | 
| substring(int beginindex, int endindex) | String | 提取 beginindex 和 endindex 之间的字符串部分 | 
| trim() | String | 返回一个前后不含任何空格的调用字符串的副本 | 
位运算符
| 位运算符 | 名称 | 描述 | 举例 | 
|---|---|---|---|
| & | 按位与 | 如果相对应位都是 1,则结果为 1,否则为 0 | (a&b),得到 12,即 0000 1100 | 
| 丨 | 按位或 | 如果相对应位都是 0,则结果为 0,否则为 1 | ( a 丨 b )得到 61,即 0011 1101 | 
| ^ | 按位异或 | 如果相对应位值相同,则结果为 0,否则为 1 | (a^b)得到 49,即 0011 0001 | 
| ~ | 按位补 | 翻转操作数的每一位,即 0 变成 1,1 变成 0 | (〜a)得到 -61,即 1100 0011 | 
| << | 按位左移 | 左操作数按位左移右操作数指定的位数 | a<<2 得到 240,即 1111 0000 | 
| >> | 按位右移 | 左操作数按位右移右操作数指定的位数 | a>>2 得到 15 即 1111 | 
| >>> | 按位右移补零 | 左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 | a>>>2 得到 15 即 0000 1111 | 
逻辑运算符
| 逻辑运算符 | 名称 | 描述 | 类型 | 举例 | 
|---|---|---|---|---|
| && 或 & | 与 | 当且仅当两个操作数都为真,条件才为真 | 双目运算符 | (a && b) 或 (a & b) 为假 | 
| || 或 | | 或 | 两个操作数任何一个为真,条件为真 | 双目运算符 | (a || b) 或 (a | b) 为真 | 
| ! | 非 | 用来反转操作数的逻辑状态。如果条件为真,则逻辑非运算符将得到假 | 单目运算符 | (!a)为假 | 
| ^ | 异或 | 如果两个操作数逻辑相同,则结果为假,否则为真 | 双目运算符 | (a ^ b) 为真 | 
比较运算符
| 比较运算符 | 名称 | 描述 | 举例 | 
|---|---|---|---|
| == | 等于 | 判断两个操作数的值是否相等,如果相等则条件为真 | (a == b) 为 false | 
| != | 不等于 | 判断两个操作数的值是否相等,如果值不相等则条件为真 | (a != b) 为 true | 
| > | 大于 | 判断左操作数的值是否大于右操作数的值,如果是那么条件为真 | (a > b) 为 false | 
| < | 小于 | 判断左操作数的值是否小于右操作数的值,如果是那么条件为真 | (a < b) 为 true | 
| >= | 大于等于 | 判断左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 | (a >= b) 为 false | 
| <= | 小于等于 | 判断左操作数的值是否小于或等于右操作数的值,如果是那么条件为真 | (a <= b) 为 true | 
break,continue
break 关键字经常用在条件和循环语句中,用来跳出循环语句。
continue关键字的作用是跳过循环体中剩余的语句执行下一次循环。
数组:
使用数组前要声明数组。数据类型[ ] 数组名;
public class JudgePrime { public static void main(String[] args){ int [] ages = {12, 18, 9, 33, 45, 60}; int i = 1; for(int age:ages){ System.out.println("数组中第"+i+"个元素是"+age); i++; } } }
二维数组:
数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数]; //或者 数据类型 [][] 数组名; 数组名 = new 数据类型[行的个数][列的个数]; //也可以 数据类型 [][] 数组名 = { {第一行值1,第一行值2,...} {第二行值1,第二行值2,...} ... } //二维数组的赋值和访问,跟一维数组类似,可以通过下标来逐个赋值和访问,注意索引从 0 开始 数组名[行的索引][列的索引] = 值;
例子:计算平均成绩:
public class AverageScore { public static void main(String[] args) { int[] data = {61, 57, 95, 85, 75, 65, 44, 66, 90, 32}; int sum = 0; for (int i = 0; i < data.length; i++) { sum += data[i]; } System.out.println("平均成绩:" + sum / data.length); } }
循环读取数据的方法
循环读取String数据,当输入exit时退出循环
        while (!in.hasNext("exit")) {
            System.out.println(in.nextLine());
        }
        //关闭输入
        in.close();
另一种方法
if ((data[i] = in.nextLine()).equals("end")) {
   break;
}
例子:
- 获取用户的输入信息(字符串)。
- 当用户输入 end 时,结束输入并打印用户之前输入的所有信息(输入的信息数量不超过 100 个)。
import java.util.Scanner; public class InputTest { public static void main(String[] args) { String[] data = new String[100]; Scanner in = new Scanner(System.in); for (int i = 0; i < 100; i++) { if ((data[i] = in.nextLine()).equals("end")) { break; } } for (String a : data) { if (a.equals("end")) { break; } System.out.println(a); } } }
创建对象的语法如下:
类名 对象名 = new 类名();
public class People { double height; int age; int sex; void cry(){ System.out.println("wozaiku"); } void laugh(){ System.out.println("wozaixiao"); } void printBaseMes(){ System.out.println("wodeshengaoshi"+height+"cm"); System.out.println("wodenianlingshi"+age+"sui"); if(this.sex==0) System.out.println("woshinanxing"); else System.out.println("woshinvxing"); } }
public class NewObject { public static void main(String[] args) { People LiLei = new People(); //创建一个People对象LiLei LiLei.height =170; LiLei.age = 20; LiLei.sex = 1; LiLei.printBaseMes(); } }
成员变量和局部变量:
成员变量就是指的对象的属性,是在类中定义,来描述对象的特性。
局部变量,它是由类的方法定义,在方法中临时保存数据。
关键字:
final 关键字可以修饰类、方法、属性和变量
- final修饰类,则该类不允许被继承,为最终类
- final修饰方法,则该方法不允许被覆盖(重写)
- final修饰属性:则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)
- final 修饰变量,则该变量的值只能赋一次值,即常量
private,protected,public
- private修饰的属性或者方法,只能在当前类中访问或者使用。如果想在主函数中使用,只能通过- getter和- setter方法进行调用
- 默认是什么修饰符都不加,默认在当前类中和同一包下都可以访问和使用。
- protected修饰的属性或者方法,对同一包内的类和所有子类可见。
- public修饰的属性或者方法,对所有类可见
Java中的类:
数组:import java.util.Arrays;
| 方法 | 描述 | 
|---|---|
| <T> List<T> asList(T... a) | 返回由指定数组构造的 List | 
| void sort(Object[] a) | 对数组进行排序 | 
| void fill(Object[] a, Object val) | 为数组的所有元素都赋上相同的值 | 
| boolean equals(Object[] a, Object[] a2) | 检查两个数组是否相等 | 
| int binarySearch(Object[] a, Object key) | 对排序后的数组使用二分法查找数据 | 
java数据类型中的坑:string为什么不是八种数据类型的一个:那八种数据类型是基本类型,而string是引用数据类型。
基本类型仅表示简单的数据类型,引用类型可以表示复杂的数据类型,还可以操作这种数据类型的行为
java虚拟机处理基础类型与引用类型的方式是不一样的,对于基本类型,java虚拟机会为其分配数据类型实际占用的内存空间,而对于引用类型变量,他仅仅是一个指向堆区中某个实例的指针。
例子:
- 使用 Arrays 将数组 [6, 17, 92, 32, 58, 22, 84, 66, 36, 33] 进行排序。
- 找出排序后 33 所在的位置。
import java.util.Arrays; public class ArraysTest { public static void main(String[] args) { int[] arr = {6, 17, 92, 32, 58, 22, 84, 66, 36, 33}; Arrays.sort(arr); System.out.println(Arrays.binarySearch(arr, 33)); } }
StringBuilder :
| 构造方法 | 说明 | 
|---|---|
| StringBuilder() | 构造一个其中不带字符的 StringBuilder,其初始容量为 16 个字符 | 
| StringBuilder(CharSequence seq) | 构造一个 StringBuilder,它包含与指定的 CharSequence 相同的字符 | 
| StringBuilder(int capacity) | 构造一个具有指定初始容量的 StringBuilder | 
| StringBuilder(String str) | 并将其内容初始化为指定的字符串内容 | 
| 方法 | 返回值 | 功能描述 | 
|---|---|---|
| insert(int offsetm,Object obj) | StringBuilder | 在 offsetm 的位置插入字符串 obj | 
| append(Object obj) | StringBuilder | 在字符串末尾追加字符串 obj | 
| length() | int | 确定 StringBuilder 对象的长度 | 
| setCharAt(int index,char ch) | void | 使用 ch 指定的新值设置 index 指定的位置上的字符 | 
| toString() | String | 转换为字符串形式 | 
| reverse() | StringBuilder | 反转字符串 | 
| delete(int start, int end) | StringBuilder | 删除调用对象中从 start 位置开始直到 end 指定的索引(end-1)位置的字符序列 | 
| replace(int start, int end, String str) | StringBuilder | 使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到 end 指定的位置结束 | 
| 构造方法 | 说明 | 
|---|---|
| GregorianCalendar() | 创建的对象中的相关值被设置成指定时区,缺省地点的当前时间,即程序运行时所处的时区、地点的当前时间 | 
| GregorianCalendar(TimeZone zone) | 创建的对象中的相关值被设置成指定时区 zone,缺省地点的当前时间 | 
| GregorianCalendar(Locale aLocale) | 创建的对象中的相关值被设置成缺省时区,指定地点 aLocale 的当前时间 | 
| GregorianCalendar(TimeZone zone,Locale aLocale) | year - 创建的对象中的相关值被设置成指定时区,指定地点的当前时间 | 
TimeZone 类
//太平洋时区的 ID 为 PST TimeZone tz0 = TimeZone.getTimeZone("PST") //getDefault()可以获取主机所处时区的对象 TimeZone tz1 = TimeZone.getDefault()
//调用Locale类的构造方法 Locale l0 = new Locale(String language) Locale l1 = new Locale(String language, String country) Locale l2 = new Locale(String languge, String country, String variant) //调用Locale类中定义的常量 Locale l1 = Locale.CHINA
Date:
| 构造方法 | 说明 | 
|---|---|
| Date() | 构造一个 Date 对象并对其进行初始化以反映当前时间 | 
| Date(long date) | 构造一个 Date 对象,并根据相对于 GMT 1970 年 1 月 1 日 00:00:00 的毫秒数对其进行初始化 | 
Scanner:
import java.util.Scanner;
Scanner in = new Scanner(System.in); int m = in.nextInt(); int n = in.nextInt();
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号