JAVA进阶22
1、接口默认方法的使用
①接口的默认方法可以通过接口实现类对象直接调用。
②接口的默认方法也可以被接口实现类进行覆盖重写
package cn.intcast.demo17; public interface MyInterfaceDefault {
//抽象方法
public abstract void methodAbs();
// void AAA();
public default void methodA(){
System.out.println("this is a default method!");
}
}
接口类1
package cn.intcast.demo17; public class MyInterfaceDefaultA implements MyInterfaceDefault {
@Override
public void methodAbs() {
System.out.println("实现了抽象 方法,AAA;");
}
}
接口实现类
package cn.intcast.demo17; public class Code01Interface {
public static void main(String[] args) {
//创建实现类对象
MyInterfaceDefaultA s = new MyInterfaceDefaultA();
//调用抽象方法,如果实现类当中没有,会向上找接口
s.methodA();
s.methodAbs();
}
}
运行结果图
2、接口的静态方法使用
接口中的静态方法可以通过接口名称,调用其中的静态方法
格式:接口名称.静态方法名(参数)
package cn.intcast.demo17; public interface StaticInterface {
public static void staticmethod(){
System.out.println("this is a static method!");
}
}
静态方法
package cn.intcast.demo17; public class CodeStatic {
public static void main(String[] args) {
StaticInterface.staticmethod();
}
}
运行结果图
3、Collections工具类
package cn.demo01; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List; public class Test03 {
public static void main(String[] args){
List<String> aList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
aList.add("a"+i);
}
System.out.println(aList);
//随机排查
Collections.shuffle(aList);
System.out.println(aList);
//逆序
Collections.reverse(aList);
System.out.println(aList);
//顺序
Collections.sort(aList);
System.out.println(aList);
System.out.println(Collections.binarySearch(aList,"a2"));
Collections.fill(aList,"hello");
System.out.println(aList);
}
}
运行结果图
4、ORM思想的简单实验:map表示一行数据,多行数据是多个map;将多个map放到list中(存放表格数据)
package cn.demo01; import java.util.*; public class TestTableDate01 {
public static void main(String[] args) {
Map<String,Object> row1 = new HashMap<>();
row1.put("id",101);
row1.put("姓名","张一");
row1.put("age",18); Map<String,Object> row2 = new HashMap<>();
row2.put("id",102);
row2.put("姓名","张二");
row2.put("age",22); List<Map<String,Object>> table1 = new ArrayList<>();
table1.add(row1);
table1.add(row2); for (Map<String,Object> row:table1){
Set<String> keyset = row.keySet();
for (String key:keyset){
System.out.print(key+":"+row.get(key)+"\t");
}
System.out.println();
}
}
}
运行结果图
5、表格数据的存储
package cn.demo01; import java.util.ArrayList;
import java.util.List; public class TestTableDate02 {
public static void main(String[] args) {
User u1 = new User(101,"王大",20,88);
User u2 = new User(102,"王二",23,85);
User u3 = new User(103,"王三",20,84); List<User> list = new ArrayList<>();
list.add(u1);
list.add(u2);
list.add(u3); for (User u:list){
System.out.println(u);
}
}
} class User{
private int id;
private String name;
private int age;
private double grade; public User() {
} public User(int id, String name, int age, double grade) {
this.id = id;
this.name = name;
this.age = age;
this.grade = grade;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} 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 double getGrade() {
return grade;
} public void setGrade(double grade) {
this.grade = grade;
} public String toString(){
return "id:"+id+"\t"+"name:"+name+"\t"+"grade:"+grade+"\t"+"age:"+age+"\t";
}
}
运行结果图
JAVA进阶22的更多相关文章
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- Java进阶(五十二)利用LOG4J生成服务日志
Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...
- Java进阶之路
Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...
- Java进阶2 数组内存和对象的内存管理知识
Java进阶2 数组内存和对象的内存管理知识 20131028 前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏 ...
- java进阶视频分享
更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
- [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS
[.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...
- Java线程间通信方式剖析——Java进阶(四)
原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...
随机推荐
- Scala--控制结构和函数
一.条件表达式 val s = if(x > 1) 1 else -1 s 可以是 val var s = 0 if(x > 1) s = 1 else s = -1 s 必须是 var ...
- zcu102 hdmi example(一)
1,概述 有一个计划是打算做一个摄像头的驱动与显示. 但是实际上手上只有一个zcu102开发板,没有摄像头,也没有上位机,自己也不会写.所以就将方案阉割成将录制好的视频放在SD卡里面,然后从SD卡里面 ...
- VS2010动态链接库的生成及调用(C++)
一.动态链接库的生成 首先利用VS2010新建一个空的工程或者win32工程 2.在工程中添加头文件和源文件 3.工程属性配置 3.1 可以在解决方案目录下新建以下几个文件夹 bin (用于存放Rel ...
- JMeter_JDBC 性能测试
用JMeter做JDBC测试配置步骤: 1.测试计划中添加mysql-connector-java-5.1.41-bin.jar 注意: 这里需要注意的是,在不同的环境(Windows或Linux)下 ...
- ES6 Promise 用法讲解
Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...
- 数据定义语言(DDL Data Definition Language)基础学习笔记
创建数据库 create database if not exists STUDY character set utf8 ; 查看新建数据库的语句 SHOW CREATE DATABASE STUDY ...
- Python实现常用排序算法
Python实现常用排序算法 冒泡排序 思路: 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完 ...
- yii2 使用指定数据库执行createCommand
Yii::$app->dbName->createCommand($sql)->queryAll(); 指定dbName数据库配置
- 一文入门HTML5
1.HTML5 上节回顾:一文读懂ES6(附PY3对比) | 一文入门NodeJS 演示demo:https://github.com/lotapp/BaseCode/tree/master/java ...
- Python机器学习第一章
1. 机器学习 (Machine Learning, ML) 1.1 概念:多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或 ...