Java程序设计(基础,java框架面试题springboot

前言

kafka的外在表现很像消息系统,允许发布和订阅消息流,但是它和传统的消息系统有很大的差异:

  • 首先,kafka是个现代分布式系统,以集群的方式运行,可以自由伸缩

  • 其次,kafka可以按照要求存储数据,保存多久都可以

  • 第三,流式处理将数据处理的层次提示到了新高度,消息系统只会传递数据。kafka的流式处理能力可以让我们用很少的代码就能动态的处理派生流和数据集。所以,kafka不仅仅是个消息中间件

kafka不仅仅是个消息中间件,同时它是个流平台,这个平台上可以发布和订阅数据流(kafka的流,有一个单独的包stream的处理),并把它们保存起来,进行处理,这个就是kafka作者的设计理念。今天之所以要聊Kafka,是因为前不久我们公司来了位阿里P8大神,在看完他的手写“Kafka笔记”,我只能用两个字来形容:膜拜!崇拜!

image.png

一般地,我们将具有相同功能的类放在一个package中。

  • 2.import语句

import 代表此类中需要引入和封装的包,一般置顶。

1,加载已定义好的类或包

2,导入支持类(可以是JDK基础类或者自己编写的类),可以供本类调用方法和属性。

import导入声明可分为两种:

1,单类型导入(single-type-import) 例:import java.util.ArrayList;

2,按需类型导入(type-import-on-demand) 例:import java.util.*;

Import的使用主要是为了偷懒。Java为了解决命名冲突使用了package来管理类,那么问题就来了,如果在写代码的时候都使用类的全称,例如一下这样:

java.io.InputStream is = java.lang.System.in;

java.io.InputStreamReader isr= new java.io.InputStreamReader(is);

java.io.BufferedReader br = new java.io.BufferedReader(isr);

这样的代码看起来确实不是那么舒服,写起来更不舒服;所以我们使用了import,只需要在类声明前导入相关包:

import java.lang.System;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.BufferedReader

代码就清爽多了:

InputStream = System.in;

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

所以有人说import的使用就是一种偷懒的做法,这一点,我并不否认;

Import后出现命名冲突,在使用Import偷懒的时候也会出一些问题;

例如:

有人在同时import java.awt.*;import java.util.*后,在代码里面使用List,这个时候就炸锅了,因为这两个下面都有List,编译器就蒙圈了,它不知道,你要使用哪一个List;所以这个时候就要指定清楚,你具体使用哪一个。比如Java.util.List;这样编译器就知道了。

import可以使用通配符*,* 代表某package下所有的class,不包括子目录。看到了吧,就是说*只能导入类不能导入子目录,比如 import java.awt.*之后,你还是不能使用 java.awt.event下面的类,因为event是个子包啊,这个子包下面的类,*就无能为力了。现在知道为什么不能,直接import Java.*了吧。

总之,在使用import的时候,最好还是使用单类型导入,总结起来好处有两个:

(1)编译速度:虽然无论是哪种导入都不影响Java代码执行效率,但是在一个很大的项目中,它们会极大的影响编译速度.

(2)命名冲突:解决避免命名冲突问题的答案就是使用全名.而按需导入恰恰就是使用导入声明初衷的否定.

  • 3.类/接口定义部分

类或者定义部分就是Java源程序的主体了:

类定义

[修饰符]class 类名[extends 父类] [implements 接口名]{[各种属性][各种方法]}

例如:

public class SearchDaoImpl extends BaseSearchDaoImpl implements SearchDao {

protected final Log LOGGER = LogFactory.getLog(getClass());

SearchConfigService searchConfigService;

public SearchPage findPage(SearchPageable searchPageable) {

return null;

}

接口定义

[修饰符] interface 接口名 [ extends 父接口] {[各种常量][各种方法的声明]}

例如:

《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源

Java优秀开源项目:

  • ali1024.coding.net/public/P7/Java/git

面试题总结

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

a/git**

面试题总结

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

[外链图片转存中…(img-YzzxjvnS-1649567295207)]

[外链图片转存中…(img-sOOC9YN6-1649567295208)]

[外链图片转存中…(img-sijhF7am-1649567295208)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值