文章目录

  • 一、集合
    • 1.数组和集合的区别
    • 2.List、Set、Map的区别
  • 二、Vue
    • 1.Vue常用的组件有哪些
  • 三、数据库
    • 1、多表查询
    • 2、事务
  • 四、框架
    • 1、SpringBoot常用的注解
    • 2、SpringBoot的优点(习惯优于配置)
    • 3、Spring的两大特性
  • 五、Java基础
    • 1、抽象类和接口的区别是什么
    • 2、解释一下static关键词
    • 3、线程池
    • 4、数据传输格式
    • 5、Ajax
  • 六、liunx
    • 1、常用命令

一、集合

1.数组和集合的区别

  • 数组的效率高于集合类
  • 数组能存放基本类型和对象,而集合类中只能存放对象
  • 数组长度不可变,集合长度可变
  • 集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性调用即可实现各种复杂操作,大大提高软件的开发效率

2.List、Set、Map的区别

Java提供的众多集合类由两大接口衍生而来:Collection接口Map接口
List和Set实现了Collection接口
HashMap和TreeMap实现了Map接口

List:
1.可以允许重复的对象。
2.可以插入多个null元素。
3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。
4.常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问

Set:
无序    元素不可重复
Map:
以Key-Value形式存储。Key可以不重复 Value可重复

二、Vue

1.Vue常用的组件有哪些

  • axios 使用axios实现前后端数据交互
  • easyUI 轻松的打造出功能丰富并且美观的UI界面
  • xlsx 实现前端解析xlsx文件内容
  • vue-json-excel 将后台的json数据导出excel表格

三、数据库

1、多表查询

  • 左连接(左外连接)
作用:在内连接的基础之上,保全左表的全部数据,右边没有的数据用NULL替代。
格式:select 列名 from 左表 left join 右表 on 从表.外键=主表.主键SELECT * FROM emp e LEFT JOIN dept d ON e.`dept_id` = d.`id`
  • 右连接(右外连接)
 作用:在内连接的基础之上,保全右表的全部数据,左边没有的数据用NULL替代。格式:select 列名 from 左表 right join 右表 on 从表.外键=主表.主键SELECT * FROM emp e  RIGHT JOIN dept d ON e.`dept_id` = d.`id`
  • 子查询 (一般而言在一个查询中,可以嵌套另一个查询. 子查询是一个完整的的SELECT语句)
-- a.子查询是单行单列的情况 原理:实际上就是子查询出来的结果是一个值,外部sql可以使用:= > >= < <= != ...-- 查询工资大于5000的员工的部门名称
SELECT NAME FROM dept WHERE id IN (SELECT dept_id FROM emp WHERE salary > 5000)-- b.子查询: 多行单列的情况 原理:实际上就是子查询的结果是多个值,可以当数组使用  外部查询可以使用 IN / ANY / ALL
SELECT * FROM emp WHERE salary > (SELECT MAX(salary) FROM emp WHERE dept_id = 1) -- c.多行多列的情况原理:子查询出来的结果实际上就是一个新表,可以继续当虚拟表使用
SELECT e.*  , d.name 部门名称 FROM (SELECT * FROM emp WHERE join_date >= '2011-01-01') e
LEFT JOIN dept d ON e.dept_id = d.id;

2、事务

什么是事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

事务的特性
事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

  • 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
  • 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)读提交(read committed)可重复读(repeatable read)串行化(Serializable)
  • 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

四、框架

1、SpringBoot常用的注解

  • @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。
  • @Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。
  • @EnableAutoConfiguration 自动配置。
  • @ComponentScan 组件扫描,可自动发现和装配一些Bean。
  • @Controller:注解在类上,表示这是一个控制层bean
  • @Service:注解在类上,表示这是一个业务层bean
  • @Value:注解在变量上,从配置文件中读取。
  • @RequestMapping:作用就是映射URL路径,将http的请求地址映射到控制器(controller)类的处理方法上
  • @Responsebody:一般在异步获取数据时使用,将java对象转为json格式的数据
  • @CrossOrigin():解决跨域问题
  • @PostMapping:处理post请求

2、SpringBoot的优点(习惯优于配置)

  • 独立运行
    内嵌各种Servlet容器,Tomcat、Jetty等,只要打成一个Jar包就能独立运行(部署)
  • 简化配置
    spring- boot-start-web启动器自动依赖其他组件,减少了maven的配置
  • 自动配置
    SpringBoot能根据当前类路径下的类、jar包自动配置Bean
  • 应用监控
    SpringBoot提供一系列端点可以监控服务及应用

3、Spring的两大特性

IOC 控制反转
AOP 面向切面编程

五、Java基础

1、抽象类和接口的区别是什么

概念不同
抽象类:这个对象是什么 比如 它是一只动物 可以是狗,也可以是猫
接口:这个对象可以做什么 比如 狗会叫,猫也会叫

成员不同
抽象类:有构造方法,用于子类实例化使用
               成员变量可以是变量,也可以是常量
               成员方法可以是抽象的,也可以是非抽象的
`
接口:    没有构造方法
               成员变量只能是常量,默认修饰符:public static final
               接口中的所有方法都是抽象的

继承关系
抽象类只能单继承,接口可以多继承

2、解释一下static关键词

  • 修饰成员变量和成员方法:被static修饰的变量和方法是属于类的,而不属于某一个对象,使用类名.静态变量名类名.静态方法名()即可使用,而无需重新new一个对象。所有实例共用一个变量
  • 静态代码块:静态代码块定义在类中方法外,静态代码块在非静态代码块之前执行。
  • 静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。

3、线程池

  • 什么是线程池?
    线程池其实就是将多个对象放到一个容器当中。
  • 为什么使用线程池?
    可以重用线程,减少创建和销毁线程带来的消耗
  • 如何使用线程池

线程池的种类

1.ThreadPoolExecutor:线程池的真正实现方法

2.FixedThreadPool:一种固定线程数量的线程池

3.CahcehThreadPool:一种线程数量不定的线程池

4.SingleThreadExecutor:一种只有一个工作线程的线程池

5.ScheduledThreadPool:核心线程数量固定,非核心线程数不固定的线程池

4、数据传输格式

1.JSON:一种轻量级文本数据交换格式(易于阅读编写)
2.XML:可扩展标记语言(读取XML文档)
3.YAML:电脑可识别的数据序列化格式(解析成本低)

5、Ajax

  1. Ajax原理
    AJAX指的是异步的JavaScript及XML(Asynchronous JavaScript And XML),是一种创建快速动态的技术,通过在后台与服务器进行少量的数据交互,实现页面的异步更新,在不重新加载整个页面的情况下做到页面的部分刷新。

  2. Ajax使用步骤
    创建 XMLHttpRequest 对象(XHR)
    1.用户从 UI 发送请求,JavaScript 中调用 XMLHttpRequest 对象。
    2.HTTP 请求由 XMLHttpRequest 对象发送到服务器。
    3.服务器使用 JSPPHPServlet,ASP.net 等与数据库交互。
    4.检索数据。
    5.服务器将 XML 数据JSON 数据发送到 XMLHttpRequest 回调函数。
    6.HTMLCSS 数据显示在浏览器上。

六、liunx

1、常用命令

  • 查看日志
    -n 是显示行号;相当于nl命令
    tail 查看前多少行   比如 tail -n 100 test.log 查询日志尾部最后100行的日志;
    head 查看日志文件的头多少行    比如 head -n 10 test.log 查询日志文件中的头10行日志;
    cat根据关键字查询日志的所在行    比如 cat -n test.log |grep “debug” 查询关键字的日志(常用!~)

Java开发面试(持续更新)相关推荐

  1. Java开发面试高频考点学习笔记(每日更新)

    Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...

  2. Java开发面试常见的技术问题整理

    Java开发面试常见的技术问题整理 介绍 对jvm的了解? jvm类加载机制 jvm运行时数据区||Jvm体系结构五大块 jvm自带的加载器 jvm的双亲委派模式 什么是GC jvm的垃圾回收算法 怎 ...

  3. 2021最新版JAVA开发面试那些事儿~(结尾有字节、华为面试内容)

    现在有越来越多的人进入互联网行业,但是各公司的面试花样也是越来越多,这里为大家整理了一些面试内容,供大家参考!(结尾有字节.华为面试内容) 一.北京神州新桥科技有限公司Java开发岗位 面试公司:北京 ...

  4. 初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!

    最近事情太多,没太时间写博客.今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的学弟学妹们. 前面我己写过多篇推文,相信看过我文章的伙伴们已经了解掌握了不少.从目前流行的开发技术. ...

  5. Android常用开发网址(持续更新)

    2019独角兽企业重金招聘Python工程师标准>>> Android常用开发网址(持续更新) 环境搭建 android镜像 http://www.androiddevtools.c ...

  6. Java开发面试简历这么写,命中率达70%

    上篇文章我们了解到,想要有面试机会,首先要完成一份好的简历.但是在撰写简历的时候,往往有一些细节很容易被忽视,导致面试机会远远不如自己的期望值.一份经过优化的简历,面试的命中率可以达到70%.那我们就 ...

  7. 顺丰java面试题_顺丰java开发面试分享,顺丰java面试经面试题

    今天要给大家分享的是一个小伙伴的顺丰java开发面试过程,其中包括了面试流程,面试题目,和回答,感兴趣的朋友可以来了解一下哈. 一.面试流程 是中午进行的面试,首先是做自我介绍,之后就是讲一下项目,然 ...

  8. 2017-10-19 远光软件Java开发面试+达达京东到家笔试总结

    远光软件Java开发面试: Java创建对象过程 JavaScript创建对象的方法      直接创建.用函数来创建 jQuery有哪些选择题    元素选择器     层叠选择器    过滤选择器 ...

  9. 富士康java面试_富士康Java开发面试题目

    int leapyear(int y) //计算润年 { if(y%4==0 && y%100!=0 || y!=100 && y%400==0) return 1; ...

  10. 富士康Java开发面试题目

    int leapyear(int y) //计算润年 { if(y%40 && y%100!=0 || y!=100 && y%4000) return 1; else ...

最新文章

  1. pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list
  2. 非阻塞模式与阻塞模式
  3. Android 10 中有关限制非 SDK 接口的更新
  4. 开机报警disk boot sector is to be modified
  5. 新兴机器学习算法:在线学习
  6. js 错误/异常处理
  7. MATLAB无边框输出图像
  8. 符号标志位.进位标志位_功能标志的成本是多少?
  9. 设计模式(3)——装饰者模式(Decorator,结构型)
  10. [置顶] Lucene开发实例(一般企业搜索平台完全够用全程)
  11. antd upload手动上传_基于MVVCTP5的文件上传
  12. 字符串转码中文乱码问题的进一步理解 UTF-8 GBK转码
  13. 安装微软虚拟机的操作说明
  14. [笔记]深入解析Windows操作系统《一》概念和工具
  15. 【官方】下载最新adb及安装驱动的方法
  16. navicat下载安装
  17. 知网回应学者侵权投诉:在研究整改方案,不是一两天能解决,每天忙到零点
  18. html主题标签是什么意思,HTML5所有标签汇总及标签意义解释
  19. Stacking:集成学习策略图解
  20. 上游任务upstream task

热门文章

  1. Java常用框架笔记(1)
  2. Java 8 list 对象字段升序降序
  3. Grbl limit.c代码分析
  4. Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧
  5. C语言简单直观打印二叉树
  6. Bentley 软件公司 Acceleration Fund 宣布成立 Bentley 下属公司 Virtuosity
  7. 美团四年,字节三年这七年测试之路希望能让正在迷茫的你少走弯路
  8. mysql 不支持分区_MySQL分区表的局限和限制
  9. 计算机平均数据传输速率怎么算,如何计算总线数据传输速率
  10. 有哪些你一打开,就令你惊讶的网站?