可以有多少个简单java类呢_java几个类的简单使用

Random

Random类用来创建一个新的随机数生成器。

对象数组

ArrayList集合的长度是可以随意改变的。

ArrayList这个代表泛型

泛型:装在集合当中的所有元素,全部都是统一的类型。泛型只能是引用类型,不能使用基本元素。

import java.util.ArrayList;

public class ArrayListExercise {

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("盖伦");

list.add("锐雯");

list.add("亚索");

for (int i = 0; i < list.size(); i++) {

System.out.println(list.get(i));

}

}

}

boolean add(E e)

E get(int index)

E remove(int index)

int size()

ArrayList集合中存储基本数据类型时,必须使用基本数据类型对应的包装类。

基本类型

包装类

byte

Byte

short

Short

int

Integer

long

Long

double

Double

char

Character

boolean

Boolean

字符串

Java程序中的所有的字符串字面值(“ABC”)都作为此类的实例实现。

字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。

字符串的构造方法和直接创建

public class StringExercise {

public static void main(String[] args) {

//使用空参构造

String string1 = new String();

System.out.println(string1);

//使用字符数组构造

char[] chars = {'A','B','C'};

String string2 = new String(chars);

System.out.println(string2);

//使用字节数组构造

byte[] bytes = {97,98,99};

String string3 = new String(bytes);

System.out.println(string3);

//直接创建

String string4 = "hello";

System.out.println(string4);

}

}

字符串常量池

程序当中直接写上的双引号字符串,就在字符串常量池中。

倒叙遍历

import java.util.Arrays;

public class ArraysExercise {

public static void main(String[] args) {

String string = "abdsdafawaswa";

char[] chars = string.toCharArray();

Arrays.sort(chars);

//chars.fori快捷

for (int i = 0; i < chars.length; i++) {

System.out.println(chars[i]);

}

//chars.forr快捷

for (int i = chars.length - 1; i >= 0; i--) {

System.out.println(chars[i]);

}

}

}

改写Object类中的toString和equals方法

import java.util.Objects;

public class Person {

private String name;

private int age;

@Override

public String toString() {

//对toString方法进行重写,使可以输出自己想要输出的内容,而不再输出对应对象的地址

return "Person{" + "name:" + name + ",age:" + age + "}";

}

/*

Object类的equals方法,默认比较的是两个对象的地址值,没有意义

可以进行重写,比较的内容自己设置

问题:

1、隐含一个多态

2、多态的弊端:无法使用子类特有的内容(属性和方法)

解决:可以使用向下转型把obj类型转换为自己定义的类型

*/

// @Override

public boolean equals(Object obj) {

if(obj == this){

return true;

}

if(obj == null){

return false;

}

//向下转型

if(obj instanceof Person){

Person person = (Person)obj;

//比较两个对象的属性,一个为this,一个为转换的对象。

return this.name.equals(person.name) && this.age == person.age;

}

return false;//不是对应的类型,直接返回false

}

@Override

public boolean equals(Object o){

if(this == o) return true;

//getClass() != o.getClass()使用反射技术,判断o是否是Person类型,

//等效于obj instanceof Person

if(o == null || getClass() != o.getClass()) return false;

Person person = (Person)o;

return age == person.age && Objects.equals(name,person.name);

//Objects.equals()方法会放在空指针异常(null)

}

public Person(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

public class ObjExercise {

public static void main(String[] args) {

Person person1 = new Person("sunwu",20);

Person person2 = new Person("huayue",22);

System.out.println(person1);

System.out.println(person2);

boolean bool = person1.equals(person2);

System.out.println(bool);

}

}

Data类

import java.util.Date;

public class DateExercise {

public static void main(String[] args) {

System.out.println(System.currentTimeMillis());

demoOne();

demoTwo();

demeThree();

}

private static void demeThree() {

Date data = new Date();

System.out.println(data.getTime());

}

public static void demoOne(){

Date date = new Date();

System.out.println(date);

}

public static void demoTwo(){

Date date = new Date(1583560500337L);

System.out.println(date);

}

}

DateFormat(抽象类)

格式化(日期-->文本)、解析(文本-->日期)

SimpleDateFormat类

构造方法:

SimpleDateFormat(String pattern)用给定的模式和默认环境的日期格式符号构造SimpleDateFormat

参数pattern:传递指定的模式

y年M月d日H时m分s秒

写对应的模式,会把模式替换为对应的日期和时间

"yyyy--MM-dd HH:mm:ss",连接发符号可以改变

format(Date date)按照指定的模式,吧Date日期格式化为符号模式的字符串

parse(String source)把符号模式的字符串解析为date日期

parse声明了一个异常parseException,如果字符串和构造方法的模式不一样,那么程序就会抛出异常。这里采用不处理只声明异常的方法 throws ParseException

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class SimpleDateFormatExercise {

public static void main(String[] args) throws ParseException {

//demoOne();

demoTwo();

}

private static void demoTwo() throws ParseException {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy--MM--dd HH:mm:ss" );

Date date = simpleDateFormat.parse("2020--03--07 23:07:52");

System.out.println(date);

//如果解析的字符串与格式不一样,就会抛出异常。

}

private static void demoOne(){

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy--MM--dd HH:mm:ss" );

Date date = new Date();

String dateFormat = simpleDateFormat.format(date);

System.out.println(date);

System.out.println(dateFormat);

}

}

Calendar类:日历类(是一个抽象类),里面有很多操作日历字段的方法

Calendar类无法直接创建对象,里面有一个静态方法叫getInstance(),该方法返回了Calendarr类的子类对象。

常用的成员方法

1、 pubilc int get(int field):返回给定日历字段的值

2、 pubilc void set(int field ,int value):将给定的日历字段设置为给定值

3、 public abstract void add(int field, int amout):根据日历的规则,为给定的日历字段添加或减去指定的时间量

4、 pubilc Date getTime():返回一个表示此Calendar时间值的Date对象

int field:日历类的字段,可以使用Calendar类的静态变量获取

YEAR = 1 年

MONTH = 2 月

DATE = 5 日

DAY_OF_MONTH = 5 月中的某一天

HOUR = 10 时

MINUTE = 12 分

SECOND = 13 秒

Calendar calendar = Calendar.getInstance();//多态(重点关注)

import java.util.Calendar;

import java.util.Date;

public class CalendarExercise {

public static void main(String[] args) {

//Calendar calendar = Calendar.getInstance();//多态

//System.out.println(calendar);//从写toString方法

//demoOne();

//demoTwo();

demoThree();

//demoFour();

}

private static void demoFour() {

Calendar calendar = Calendar.getInstance();

Date date = calendar.getTime();

System.out.println(date);

}

private static void demoThree() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.YEAR,2); // 正为加,负为减

calendar.add(Calendar.MONTH,-3);

System.out.println(calendar.get(Calendar.YEAR));

System.out.println(calendar.get(Calendar.MONTH));

}

private static void demoTwo() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.YEAR,9999); // 设置日期

//calendar.set(888,88,88);

System.out.println(calendar.get(Calendar.YEAR));

}

private static void demoOne() {

Calendar calendar = Calendar.getInstance();

int year = calendar.get(Calendar.YEAR);

System.out.println(year);

int month = calendar.get(Calendar.MONTH);//西方是0-11

System.out.println(month);

int dateOfMonth = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(dateOfMonth);

}

}

System.CurrentTimeMillis()方法

public class CurrentTimeMillisExercise {

public static void main(String[] args) {

demoOne();

}

private static void demoOne() {

long start = System.currentTimeMillis(); //获取毫秒值

for (int i = 0; i <9999; i++) {

System.out.println(i);

}

long end = System.currentTimeMillis();

System.out.println("\n程序运行时间:" + (end-start) + "毫秒");

}

}

System.arraycopy(……)

System.arraycopy(object src,int srcPos,object dest,intdestPos,int length):将数组中指定的数据拷贝到另一个数组

src:原数组

srcPos:原数组中的起始位置(索引)

dest:目标数组

destPos:目标数组中的起始位置

length:要复制的长度

import java.util.Arrays;

public class ArrayCopyExercise {

public static void main(String[] args) {

demo();

}

private static void demo() {

int[] src = {1,2,3,4,5};

int dest[] = {6,7,8,9,10};

System.out.println("复制前:" + Arrays.toString(dest));

System.arraycopy(src,0,dest,2,3); //从原数组(目标数组)要复制(被复制)的索引开始 + length <=src.length()/dest.length()

System.out.println("复制后:" + Arrays.toString(dest));

}

}

Stingbuilder

字符串缓冲区支持可变的字符串。

public class StringBuilderExercise {

public static void main(String[] args) {

demoOne();

demoTwo();

demoThree();

demoFour();

}

private static void demoFour() {

String string = "hello";

StringBuilder stringBuilder = new StringBuilder(string);

stringBuilder.append("world");

System.out.println(stringBuilder);

final String string1 = stringBuilder.toString();

System.out.println(string1);

}

private static void demoThree() {

StringBuilder stringBuilderOne = new StringBuilder();

stringBuilderOne.append("hello").append(123456789); // 链式编程

System.out.println(stringBuilderOne);

}

private static void demoTwo() {

//带参构造

StringBuilder stringBuilder = new StringBuilder("hello");

System.out.println(stringBuilder);

}

private static void demoOne() {

//空参构造方法

StringBuilder stringBuilder = new StringBuilder();

System.out.println(stringBuilder);

}

}

装箱和拆箱

装箱:基本数据类型-->包装类

拆箱:包装类-->基本数据类型

可以使用构造方法或者使用valueOf方法进行装箱(对字符串类型的数和基本数据类型)。

可以进行自动装箱和自动拆箱

基本数据类型和字符串类型之间相互转换

1、基本数据类型的值 + "" (最简单)

2、包装类的静态方法toString(参数), 和object是重载关系

3、String类的静态方法valueOf(参数),将基本数据类型进行转换

1、使用包装类的静态方法parsexxx("数值类型的字符串")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值