java语言基础

成员变量和局部变量

变量位置作用范围初始化
成员变量类中,方法外类中有默认值
局部变量方法内方法中没有默认值,要定义赋值才能用

this关键字

this:代表所在类的当前对象的引用(地址值),即对象自己的引用

匿名对象

1.举例
new Scanner(System.in);
2.应用
new Scanner(System.in).nextInt();
3.一个匿名对象只能使用一次,所以一旦调用两次,就会创建两个对象,浪费

ArrayList类

1.是大小可变的数组,可不断添加元素,大小自动增长
2.只能存储引用数据类型,类似<int>的不能写,需转化
3.常用方法

方法作用
public boolean add(E e)将指定的元素添加到此集合的尾部。
public E remove(int index)移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index)返回此集合中指定位置上的元素。返回获取的元素。
public int size()返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

String类

1.基本数据类型字符串不变:值在创建后不能被更改

 String s1="abc";
 s1+="d";
 System.out.println(s1);
 //字符串常量池中有"abc"和"abcd"两个对象,s1从指向"abc"变成指向"abcd"

String str1 = new String("A"+"B");

会创建多少个对象?

字符串常量池:“A”,“B”,“AB” : 3个

堆:new String(“AB”) :1个

引用: str1 :1个

总共 : 5个

String str2 = new String("ABC")+"ABC";

会创建多少个对象?

字符串常量池:“ABC” : 1个

堆:new String(“ABC”) :1个

引用: str2 :1个

总共 : 3个
2.String底层靠字符数组实现
"abc"等效于char[] data={‘a’,‘b’,‘c’}`

静态类

静态代码块

1.定义:在成员位置,使用static修饰的代码块{ }
2.位置:类中方法外
3.执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行
4.格式:

public class ClassName{
  static {
    // 执行语句 
  }
}

4.作用:给变量进行初始化赋值。

Arrays类

包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单

Math类

包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单

继承

1.成员变量重名时
子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,可以使用 super 关键字,修饰父类成员变量,类似于之前学过的 this
格式:

super.父类成员变量名

2.构造方法

  1. 构造方法的名字是与类名一致,所以子类是无法继承父类构造方法
  2. 构造方法的作用是初始化成员变量。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构 造方法中默认有一个 super() ,表示调用父类的构造方法。父类成员变量初始化后,才可以给子类使用。

抽象类

  1. 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象
  2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
  3. 抽象类中,不一定包含抽象方法,有abstract修饰的类就是抽象类,但是有抽象方法的类必定是抽象类

接口

1.虽然是.class文件,但不是类

引用数据类型:数组,类,接口

2.定义格式

 public interface 接口名称 {
      // 抽象方法
      // 默认方法   
      // 静态方法     
      // 私有方法 
 }

3.可作为类的成员变量,方法参数,返回值等使用,但都需
创建子类对象

final关键字

1.用于修饰不可改变的内容
2.final关键字修饰的类不能被继承

权限修饰符

.publicprotecteddefault(空的)private
同一类中
同一包中(子类与无关类)
不同包的子类
不同包中的无关类

匿名内部类

1.前提:匿名内部类必须继承一个父类或者实现一个父接口
2.以接口为例的用法

定义接口

package com.aa.test;
/*
* 一个简单的接口
* */
public interface FlyAble {
    public void fly();
}

实现

package com.aa.test;

public class Demo {
    public static void main(String[] args) {
        /*
         * * 调用静态方法,参数为匿名内部类
         * * 定义并创建该接口的子类对象
         * * 直接传值给showFly(FlyAble f)
         * */
        showFly(new FlyAble() {
                public void fly() {
                System.out.println("flying~");
            }
        });
    }
    /*
    * 静态方法
    * */
    public static void showFly(FlyAble f){
        f.fly();
    }
}

时间日期

Date类

1.表示特定的瞬间,精确到毫秒。

  • public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒),即自动设置当前系统时间的毫秒时刻
  • public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

tips: 基准时间为1970年1月1日8时0分0秒。

import java.util.Date;

public class Demo01Date {
    public static void main(String[] args) {
        // 创建日期对象,把当前的时间
        System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2018
        // 创建日期对象,把当前的毫秒值转成日期对象
        System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
    }
}

DateFormat类

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类SimpleDateFormat
1.构造方法
public SimpleDateFormat(String pattern):参数pattern是一个字符串,代表日期时间的自定义格式。

创建SimpleDateFormat对象的代码如:

import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class Demo02SimpleDateFormat {
    public static void main(String[] args) {
        // 对应的日期格式如:2018-01-16 15:06:38
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    }    
}

2.format方法
public String format(Date date):将Date对象格式化为字符串

使用format方法的代码为:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
 把Date对象转换成String
*/
public class Demo03DateFormatMethod {
    public static void main(String[] args) {
        Date date = new Date();
        // 创建日期格式化对象,在获取格式化对象时可以指定风格
        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
        String str = df.format(date);
        System.out.println(str); // 2008年1月23日
    }
}

3.parse方法
public Date parse(String source):将字符串解析为Date对象

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
 把String转换成Date对象
*/
public class Demo04DateFormatMethod {
    public static void main(String[] args) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
        String str = "2018年12月11日";
        Date date = df.parse(str);
        System.out.println(date); // Tue Dec 11 00:00:00 CST 2018
    }
}

Calendar类

1.Calender类是抽象日历类,通过静态方法创建对象

import java.util.Calendar;

public class Demo06CalendarInit {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();//使用默认时区和语言环境获得一个日历
    }    
}

System类

提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:

public static long currentTimeMillis():返回以毫秒为单位的当前时间
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中

参数序号参数名称参数类型参数含义
1srcObject源数组
2srcPosint源数组索引起始位置
3destObject目标数组
4destPosint目标数组索引起始位置
5lengthint复制元素个数

StringBuilder

1.可变字符序列,类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容
2.常用方法
public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身
public String toString():将当前StringBuilder对象转换为String对象

装箱与拆箱

装箱:从基本类型转换为对应的包装类对象
拆箱:从包装类对象转换为对应的基本类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值