Java学习记录1

1:输出:

(1)print:不自动进行换行。

(2)println:自动进行换行。

2:Helloworld:

public class Welcome {
	public static void main(String[] args) {
		System.out.print("hello world");
	}
}

3:变量的分类:

(1)局部变量:方法或语句块得不定义的变量。生命周期是从声明位置开始到方法或语句块执行完毕为止。

(2)成员变量(也叫实例变量 member variable):方法外部、类的内部定义的变量。从属于对象,生命周期随对象终止。

(3)静态变量(类变量 static variable):使用static定义。从属于类,生命周期伴随类终止,从类加载到卸载。

//常量:

常量(Constant)

变量前加“final”后变成常量。

常量赋值(规范):大写字母和下划线组成。

4:基本数据类型:

(1)数值型

            1)整形类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)

            2)浮点类型:float(4字节)、double(8字节)

(2):字符型:char(2字节)

(3):布尔型:boolean(1字节)

只要类型比int(byte,char,short),那么在运算之前,这些值会自动转换成int

        注意:浮点数不精确,不能用来比较,java.math包下面有两个类:BigInteger和Decimal使用精确浮点运行,推荐:BigDecimal; boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用0或非0的整数代替true和false(和C语言不同)

        例:

boolean man=true;
if(man){      //相当于if(man==true),但是极端不推荐
	system.outprintln(“男性”);
}

5:注释:

单行注释:使用“//”开头以“//”结尾

多行注释:以“/*”开头,以“*/”结尾

文档注释:以“/**”开头,以“**/”结尾

6:转义字符:

转义符  含义    Unicode值
\b退格\u0008
\n换行\u00a
\r回车\u000d
\t制表符(tab)\u0009
\"双引号\u0022
\'单引号\u0027
\\反斜杠\u005c

 7:算术运算符:

        整数运算符:                    

                 1、如果两个操作数一个为long,则结果也为long

                 2、没有long时,结果为int。即使操作数全为short,byte,结果也是int

        浮点运算:

                1、如果两个操作数有一个为double,则结果为double。

                2、只有两个操作数都是float,这结果才为float

        取模运算:              

                1、其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操                                 作数相同。如:7%3=0,-7%3=-1,7%-3=1。

8:输入:
        利用Scanner。(需要加头文件:import java.util.Scanner)

        例:

public class TestScanner{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入名字");
        String name = scanner.nextLine();
        
        System.out.println(name);
    }
}

9:方法(类似于C++中的函数)

        面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

        定义声明格式:

[修饰符1  修饰符2  …]   返回值类型    方法名(形式参数列表){
    Java语句;… … …
 }

        例:(通过对象调用普通方法)

public class TestMethod{
    public static void main(String[] args){
    //通过对象调用普通方法
    TestMethod tm = new TestMethod();
    tm.printSxt();
   }
    void printSxt(){
        System.out.println("学Java");
        System.out.println("我爱Java");
        System.out.println("啧啧啧");
   }

}

        方法的重载:

        重载的方法实际上是完全不同的方法,只是名称相间而已。方法名相同,参数个数不同/参数类型不同/参数顺序不同,构成重载。

10:递归:

        基本思想:自己调自己 。

      1.定义递归头。(什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。)

      2.递归体。(什么时候需要调用自身方法。)

例:

public class Test22 {
    public static void main(String[] args) {
        long d1 = System.currentTimeMillis();  
        System.out.printf("%d阶乘的结果:%s%n", 10, factorial(10));
        long d2 = System.currentTimeMillis();
        System.out.printf("递归费时:%s%n", d2-d1);  //耗时:32ms
    }
    /** 求阶乘的方法*/
    static long  factorial(int n){
        if(n==1){//递归头
            return 1;
        }else{//递归体
            return n*factorial(n-1);//n! = n * (n-1)!
        }
    }
}

11:继承:

        关键词:extends

        使用格式:

    class 子类 extends 父类{}

12:final关键字的作用:

        (1)修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。

final  int   MAX_SPEED = 120;

        (2)修饰方法:该方法不可被子类重写。但是可以被重载!

final  void  study(){}

        (3)修饰类: 修饰的类不能被继承。比如:Math、String等。

final   class  A {}

13:super类:

        super是直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法或属性。

14:封装:

修饰符同一个类同一个包 子类 所有类
private*
default**
protected***
public****

15:数组:

        (1)数组的声明:

type[]   arr_name; 
type    arr_name[];

        注意:

      1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。

      2. 声明一个数组的时候并没有数组真正被创建。

      3. 构造一个数组,必须指定长度。

例:(创建基本类型一维数组)

public class Test {
    public static void main(String args[]) {
        int[] s = null; // 声明数组;
        s = new int[10]; // 给数组分配空间;
        for (int i = 0; i < 10; i++) {
            s[i] = 2 * i + 1;//给数组元素赋值;
            System.out.println(s[i]);
        } 
    }
}

例:(创建引用类型一维数组)

class Man{
    private int age;
    private int id;
    public Man(int id,int age) {
        super();
        this.age = age;
        this.id = id;
    }
}
public class AppMain {
    public static void main(String[] args) {
        Man[] mans;  //声明引用类型数组; 
        mans = new Man[10];  //给引用类型数组分配空间;
         
        Man m1 = new Man(1,11);
        Man m2 = new Man(2,22);  
         
        mans[0]=m1;//给引用类型数组元素赋值;
        mans[1]=m2;//给引用类型数组元素赋值;
    }
}

        (2)数组的初始化:

                1、静态初始化

int[] a = { 1, 2, 3 };// 静态初始化基本类型数组;
Man[] mans = { new Man(1, 1), new Man(2, 2) };// 静态初始化引用类型数组;

                2、动态初始化

int[] a1 = new int[2];//动态初始化数组,先分配空间;
a1[0]=1;//给数组元素赋值;
a1[1]=2;//给数组元素赋值;

                3、默认初始化

int a2[] = new int[2]; // 默认值:0,0
boolean[] b = new boolean[2]; // 默认值:false,false
String[] s = new String[2]; // 默认值:null, null

        (3)数组的遍历

                通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值。

例(使用循环遍历初始化和读取数组):

public class Test {
    public static void main(String[] args) {
        int[] a = new int[4];
        //初始化数组元素的值
        for(int i=0;i<a.length;i++){
            a[i] = 100*i;
        }
        //读取元素的值
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
    }
}

执行结果:

0
100
200
300

        (4)利用foreach循环输出数组

for(int m : a )  //a:数组名
    System.out.println(m);

注意:foreach循环只能用于读取数组元素的值,不能对其进行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值