java基础(2)

一、类和对象

类属于对象,类是对象的具体表达,对象是类的具体实例,类描述一类对象的行为和状态

例如:我们以一种动物作为我们的对象,去描述他,这里我们以狗举例

1、狗类

狗的种类有哈士奇,京巴,狮子狗

狗的属性有:名字、品种、颜色

方法---狗的特性有:叫、摇尾巴和跑

构造方法的特性:方法名用类名来作为方法名 ,没有返回值,也不需要void

构造方法的用途:生成对象

2、调用对象或方法

Dog dog = new Dog();

System.out.println(dog.getColor());

dog.barking();

如何使用其他类

使用其他类,则需要导入其他类

import org.apache.commons.dbutils.QueryRunner;

不用导入的类java.lang下的类会自动导入,不需要import语句

设计类时尽量少公开属性和方法

子类继承父类

public class HsqDog extends Dog {

}

3、静态类的属性和调用方法

JVM只有一份,如static String NAME = "狗"

调用的时候用类名点.静态成员去调用

final属性不能修改:只能在定义时赋值

4、子类调用父类的构造方法

在子类构造方法里第一个语句:super();

父类确定有一个方法,各个子类不完全一样,定义为抽象方法,父类不实现,子类实现

5、抽象类的特征及使用

使用abstract修饰方法和类

抽象类不能实例化

一般情况下很少写抽象类,可以将多数子类相同的逻辑,在父类里实现;少数子类有不同的逻辑,可以重写父类的方法

6、接口

所有方法都是抽象,只声明不实现

例如public class Dog implements IDog

7、类,抽象类,接口的区别

接口:方法一个都不能实现

抽象类:可以实现一些方法

普通类:必须实现所有的方法

8、内部类

内部类非静态内部类可以访问外部类的属性和方法;静态内部类只能访问外部类的静态属性和方法

静态的内部类可以有静态属性或方法,通过类名逐层调用即可

生成一个类文件:外部类名$内部类名.class

例如:Dog$T.class

例如

public class Dog {

public class T {

public void test() {

System.out.println("Hello, world!");

}

}

public static void main(String[] args) {

Dog dog = new Dog();

T t = dog.new T();

t.test();

}

}

9、String类

修改时会产生新的对象,占用更多内存

StringBuffer和StringBuilder

非常相似,方法几乎完全一样,用于字符串的修改

区别:StringBuffer是线程安全的,效率低;StringBuilder是线程不安全的,效率高

10、数据类型相互转化

byte(Byte):1个字节,2^8=256,-128(2^7) ~ 0 ~ 127(2^7-1)

int(Integer): 4个字节,2^32=2^2x2^30=4x2^30=4G,-21亿(-2^31) ~ 21亿(2^31-1)

1K=2^10, 1M=2^20, 1G=2^30

字符串和数字相互转换

带格式的数字字符串转换为数字,parse

例如:

NumberFormat numberFormat = new DecimalFormat("#,###");

try {

Number number = numberFormat.parse("1,234,567");

System.out.println(number);

} catch (ParseException e) {

e.printStackTrace();

}

数字转换为带格式的字符串,format方法

String n = numberFormat.format(1234);

字符串与日期的转换

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

try {

Date date = dateFormat.parse("2018-08-01T23:00:01.234");

// 数据库字段类型是Date,使用Date的方法(比较大小,修改)

String d = dateFormat.format(new Date());

System.out.println(d);

} catch (ParseException e) {

e.printStackTrace();

}

11、异常捕捉

异常都是Throwable的子类

检查异常:需要处理,try catch或再次throw出去

运行时异常:可以不catch

错误:处理不了

方法声明包括:throws ParseException,调用时就需要处理这个异常

12、数据导入导出

数据导入:使用POI导入Excel数据到数据库https://blog.csdn.net/qq_33350186/article/details/78833889

数据导出:使用POI导出数据库的数据到excel文件,https://www.cnblogs.com/gudongcheng/p/8268909.html

相关推荐
seeyoutlb1 分钟前
微服务全局日志处理
java·python·微服务
码界奇点16 分钟前
Java Web学习 第15篇jQuery从入门到精通的万字深度解析
java·前端·学习·jquery
雨落秋垣19 分钟前
手搓 Java 的用户行为跟踪系统
java·开发语言·linq
盖世英雄酱5813624 分钟前
java深度调试技术【第六七八章:宽字节与多字节】
java·后端
爱丽_1 小时前
深入理解 Java Socket 编程与线程池:从阻塞 I/O 到高并发处理
java·开发语言
济南壹软网络科技有限公司1 小时前
云脉IM的高性能消息路由与离线推送机制摘要:消息的“零丢失、低延迟”之道
java·即时通讯源码·开源im·企业im
Seven971 小时前
剑指offer-46、孩⼦们的游戏(圆圈中最后剩下的数)
java
serendipity_hky2 小时前
互联网大厂Java面试故事:核心技术栈与场景化业务问题实战解析
java·spring boot·redis·elasticsearch·微服务·消息队列·内容社区
我真不会起名字啊2 小时前
C、C++中的sprintf和stringstream的使用
java·c语言·c++
十点摆码2 小时前
Spring Boot2 使用 Flyway 管理数据库版本
java·flyway·数据库脚本·springboo2·数据库脚本自动管理