Java基础

文章介绍了Java编程中空指针处理、异常处理的不同策略,如Lambda表达式的使用、StreamAPI的Supplier、Consumer等,以及面向对象编程的封装、继承和多态,JDBC基础操作,多线程创建方法和字符串处理技巧。
摘要由CSDN通过智能技术生成

1.空指针处理
(1)对象空指针可以用object != null 或 Objects.noNull() 或Objects.isNull()
(2)集合空指针可以用CollectionUtils.isEmpty()来判断,或obj != null && obj.size() > 0

2.异常处理
(1)运行时异常,在程序运行时可能出现的异常
(2)编译时异常,在代码编译时可能出现的异常
(3)使用throw 或throws 抛出异常
try{
}catch(Exception e){
}finally{
}
3.Lambda表达式
(1)使? Lambda 表达式创建 Thread 和传统的方式创建 Thread 的区别?
>

Lambda表达式使用的接口特点:函数式接口,接口里面只有一个抽象方法

3.Stream编程
Supplier:供给型,没有参数,有返回值
Consumer:消费型,有参数,没有返回值
Predicate:断言型,有参数,返回一个boolean类型
Function:方法型,有参数,有返回值
BiFunction:方法型,能传递两个参数、有返回值
Filter:过滤器接口

常用方法:
	limit:取集合的前n条
	skip:跳过集合的前n条
	filter:根据条件过滤想要的内容
	map:把一个类型转换为另一个类型
	collect:把流中的内容输出

4.面向对象编程
封装:通常认为是把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口。
继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类称为父类,得到继承信息的类称为子类。
多态:分为编译时多态(方法重载)和运行时多态(方法重写)。要实现多态需要做两件事
(1)子类继承父类并重写父类中的方法
(2)父类型引用子类对象

重载和重写的区别:
	(1)重载:编译时多态,同一个类中同名的方法具有不同的参数列表、不能根据返回类型进行区分。
	(2)重写:运行时多态,子类与父类之间、子类重写父类的方法。

5.JDBC基础
1.JDBC访问数据库最基础的代码
String userName = “root”;
String password = “123456”;
String url = “jdbc:…”;
try{
//1.加载驱动
Class.forName(“com.mysql.ci.jdbc.Driver”);
//2.获取链接
Connection con = DriverManager.getConnection(url,userName,password);
//3.获取Statement,用于执行SQL语句
Statement st = conn.createStatement();
//4.执行SQL
int res = st.excuteUpdate(“insert into table…”);
//5.处理结果
System.out.print(res);
}catch(Exception e){
e.printStackTrace;
}finally{
//6.关闭资源,先关Statement,再关Connection
try {
if(st != null) st.close();
if(conn != null) conn.close();
}catch(Exception e){
e.printStackTrace();
}

}

6.多线程
怎么创建一个线程
(1)继承Thread类,重写run方法,创建对象,调用start()方法
(2)实现runnable接口,重写run方法,使用new Thread(接口实现类对象).start()
(3)实现callable接口,重写call方法,new FutureTask(接口实现类对象),再使用new Thread(futureTask对象).start()
(4)使用线程池,创建一个ThreadPoolExcutor对象,调用excute(thread)适用于Runnable , submit(thread)适用于Callable
怎么优雅的结束一个线程
使用interrupt方法中断线程
什么场景会抛出 InterruptedException
当一个线程处于阻塞状态下(例如休眠),调用了该线程的interrupt()方法,则会出现InterruptedException
线程的生命周期
(1)New:初始状态,线程被构建,但是还没有调用start()方法
(2)Runnable:可运行/运行状态
(3)Blocked:阻塞状态,表示线程阻塞与锁
(4)Waiting:等待状态
(5)Time_Waiting:超时等待状态,可以在指定的时间自行返回
(6)Terminated:终止状态,表示当前线程已经执行完毕
线程池简单实用
使用 new ThreadPoolExcutor()创建线程池

7.字符串处理
(1)字符串拆分:
subString()方法,截取指定index位置的字符
split()方法,根据指定内容切割字符串,返回结果为字符串数组
(2)字符串格式化
String.format()
(3)替换字符串中的部分字符串
replace()方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李小枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值