面试基础知识补充

IO

1.往内存中读数据是输入流,从内存中往外写是输出流。

2.根据处理的数据类型分为字节流和字符流

3.字节流可以处理所有数据类型的数据。字符流处理文本数据

文件操作:

file.exists()是否存在

file.getabsolutepath()绝对路径

file.length()文件大小

file.createnewfile()创建新文件

file.idirectoryhi文件夹会否存在

file.mkdir创建文件夹

dir.listfiles获取文件夹下的所有文件

 

字符流操作

FileInputStream fis = null;

        try {

            fis = new FileInputStream("D:\\testData.txt");

            byte bytes[]=new byte[1024];

            int n=0;

            while((n=fis.read(bytes))!= -1){

                String str = new String(bytes,0,n);

                System.out.print(str);

            }

        } catch (Exception e) {

            e.printStackTrace();

        } finally{

            try {

                fis.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

springboot中读取文件:首先在Spring Bean中获取applicationcontext的引用,然后通过getresouces的方法取得本地绝对路径上的文件、网络资源文件、classpath下的文件

写文件可以使用原生的fileoutputstream:首先穿件fileoutputstram对象,然后创建写入字符串,转成字节流,然后将字节流写入fileoutputstram中

NIO:

主要是对channel和buffer的一些操作,具体的话没有涉及过,主要还是使用原生的io操作。

多线程:

大多数时候我们都是使用Spring Boot开发web项目,默认的controller、service、dao的作用域都是单实例、无状态的。

springboot中首先获取spring的上下文applicationcontext然后,定义自己的线程类,然后通过springcontext来获取该线程类。具体应用上还可以定义一个组件启动类来专门启动该线程类。

 

集合:

集合区别于数组主要是方便插入与增加操作。

SSH:struts、hibernate、spring:分别:MVC逻辑控制、数据库操作、容器、bean的管理

Springboot:简化了相关配置:约定优于配置。依赖注入:用spring容器将依赖关系注入到主键当中。

控制反转:控制:由spring容器来控制依赖对象,反转:由spring容器向程序中注入依赖对象。

springcloud:主要是使用API网关来实现微服务,主要是使用调用服务(feign),被调用服务(eruka)、API网关(zuul)、服务注册中心(server),来实现不同服务器上相互调用接口。

负载均衡:使用Nginx服务器、或者使用springcloud的zuul,使用serviceIdl进行绑定后,如果有相同的serviceid则会通过轮训的方式进行访问。

部署:

tomcat的部署可以直接将springboot项目打成jar包然后直接后台运行,或者打成war包,甩到tomcat webapp下运行。

 

kafka:如果有大量的请求同时到来,可能会触发too many connection错误,通过使用消息队列,我们可以异步处理请求,减缓系统压力。

 

猜你喜欢

转载自blog.csdn.net/qq_31293575/article/details/81738014