java基础知识

时间:2020-09-02 16:52:38   收藏:0   阅读:51

数据类型:

整数

byteshortintlong 四种基本数据类型表示整数,需要注意的是 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.字符串连接有两种方法:

  1. 使用 +,比如 String s = "Hello " + "World!"
  2. 使用 String 类的 concat() 方法

4.charAt() 方法的作用是按照索引值(规定字符串中第一个字符的索引值是 0,第二个字符的索引值是 1,依次类推),获得字符串中的指定字符。

delete(int  a,int  b)有两个参数,使用时删除索引从a开始(包含a)到b(不包含b)的所有字符;

deleteCharAt(int  a)只有一个参数,使用时删除索引为a的字符;

字符串常用提取方法

方法返回值功能描述
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;
}

例子:

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 关键字可以修饰类、方法、属性和变量

  1. final 修饰类,则该类不允许被继承,为最终类
  2. final 修饰方法,则该方法不允许被覆盖(重写)
  3. final 修饰属性:则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)
  4. final 修饰变量,则该变量的值只能赋一次值,即常量
private,protected,public
  1. private 修饰的属性或者方法,只能在当前类中访问或者使用。如果想在主函数中使用,只能通过 getter 和 setter 方法进行调用
  2. 默认 是什么修饰符都不加,默认在当前类中和同一包下都可以访问和使用。
  3. protected 修饰的属性或者方法,对同一包内的类和所有子类可见。
  4. 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虚拟机会为其分配数据类型实际占用的内存空间,而对于引用类型变量,他仅仅是一个指向堆区中某个实例的指针。

例子:

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 指定的位置结束
 
Calendar:
GregorianCalendar 类
构造方法说明
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();

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!