当前位置: 首页 > news >正文

购物网站怎么做项目简介网站策划薪资

购物网站怎么做项目简介,网站策划薪资,绍兴企业建站模板,太仓做网站的java开发岗位面试 技术栈#xff1a;springboot框架#xff0b;redis 个人笔试/技术面问题整理 1、SpringBoot有什么组件#xff1f; 举例说几个#xff1a; ①auto-configuration组件#xff1a;核心特征。其约定大于配置思想#xff0c;赋予了SpringBoot开箱即用的强…java开发岗位面试 技术栈springboot框架redis 个人笔试/技术面问题整理 1、SpringBoot有什么组件 举例说几个 ①auto-configuration组件核心特征。其约定大于配置思想赋予了SpringBoot开箱即用的强大能力。 ②starter组件将复杂配置统一集成进startermaven导入starter后SpringBoot就自动扫描加载配置。 ③springboot cli 组件命令行工具通过springboot cli可通过Groovy脚本快速构建SpringBoot应用并可通过命令行方式运行。 ④actuator 组件用来对应用系统进行自省和监控的功能模块是SpringBoot的监控插件本身提供了很多接口可以获取当前项目的各项运行状态指标。借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 2、Service和Autowired的区别 Service根据名称 Autowired默认按类型配置 3、SpringBoot是基于什么服务器启动的启动的原理是什么 Tomcat 启动原理 SpringBoot因内置了tomcat或者jetty服务器不需要直接部署war文件所以SpringBoot的程序起点是一个普通的主函数。 主函数 SpringBootApplication public class DemoApplication{public static void main (string[] args){springApplication.run(DemoApplication.class,args);}}SpringBoot的启动过程都是通过SpringBootApplication注解和SpringApplication.run方法来实现。 Curl localhost8080/hello Curl验证接口 4、定义一个post接口使用的注解 注解PostMapping定义一个post接口 RequestBody把前端传过来的Json转换成Java对象将Json对象映射成后台Java实体。例RequestBody User user 5、Long型跟long型的区别Long型中equals和“”的区别 long是基本数据类型没有属性方法只能进行数学运算而Long是long相对应的引用数据类型也是包装类它有方法和属性。 类里面有方法和属性而基本数据类型里面没有方法和属性。 long a 1 ; Long a1 new Long(1); Long a2 new Long(1);以上a与a1相等a与a2相等a1与a2 equals相等。 由此可见 Long定义的变量为一个Long类型对象对应的是对象的引用地址 long定义的变量为一个长整型数值的数值变量。 到底是选择Long还是long这个还得看具体环境如果你认为这个属性不能为null那就用long因为它默认值为0如果这个字段可以为null那就应该选择Long。 long可以用“”“”“”作比较Long是一个对象使用.equals方法进行相等比较大小比较时使用“”“”对Long对象longValue()。例 L1.longValue()L2.longValue() 6、开发过程中错误代码文件找不到的错误代码404服务器内部失败500内部网络故障或设置问题的状态502请求失败错误的请求 400 7、SpringBoot中如何处理事务使用的任务注解 SpringBoot提供了一个名为“Transational”的注解来管理事务。 假设一个场景需要在一个service中处理数据并通过Rest调用将数据发送到另一个service。如若另一个服务器突然停止如果在向另一个service服务发送Api调用之前将数据信息保存在自己的数据库中那么将来会发生差异因为另一个service正在丢失该记录。 为了避免这种情况我们可以将“Transactional”注解放入另一个service的方法中然后从那里开始如果调用另一个service时出现故障正在进行的流程中的所有数据都将回滚 Transational public A a(B b,Double c) { //数据处理 //向另一个service发送Rest调用 }8、MySQL数据库有自增序主键Oracle有UUID主键来辨别唯一但是无序Oracle怎么实现自增长主键 Oracle数据库自增长没有Mysql数据库简单mysql可以在建表的时候设置auto_increment就好了但Oracle这样不行Oracle数据库必须建立序列然后再mybatis插入id时使用这个序列后才能实现Oracle id 的子增长。 序列创建语句 create sequence TBAL_OA_HOLIDAY_TYPE //序列名称 increment by 1 //以1倍的速度增长也可以设置其他数字 start with 1 //从id1开始 开始增长 maxvalue 9999 //最大值为9999根据情况 minvalue 1 //最小值为1 nocycle //不循环也就一直增长 cache 20 //设置缓存cache个序列如果系统down掉或者有其他情况不连续也可以设置为 ---NOCACHE noorder ;建立了Oracle序列之后我们就可以再mybatis中插入这样使用来插入id了 insert into TBAL_OA_HOLIDAY_TYPE(ID,TYPE_NAME,REMARK) values(TBAL_OA_HOLIDAY_TYPE.NEXTVAL,#{typename},#{remark})我们在mybatis插入id的位置用序列名称.NEXTVAL的形式代替这个id 若是uuid作为主键Oracle中有有sys_guid函数可以产生uuid 例 select sys_guid() from dualmysql中使用uuid的话建议在Java中生成uuid再存库 引入java.util.UUID包。String uuid UUID.randomUUID().toString().replace(“_”,“”) 9、Vue前端若多次对后端进行点击响应后端怎么能减少这个冗余 后端数据库索引 10、Arraylist、Linkedlist和Vector三者区别 ①从存储结构来看 Arraylist和Vector是由数组构成其默认的初始容量为10。而Linkedlist是由双向链表构成。 ②从线程安全来看 Arraylist和Linkedlist是线程不安全的如果需要在并发的环境下使用它们可以用Collections类中的静态方法synchronizedlist对Arraylist和Linkedlist进行调用即可。 而Vector是线程安全的它的源码中大部分方法中都包含关键字synchronized但Vector的效率没有Arraylist高。 ③从扩容机制来看 Linkedlist是没有扩容的因为是链表实现的。 Arraylist和Vector的扩容机制1Arraylist扩容之后的容量是之前的1.5倍默认2Vector扩容之后的容量是之前的两倍默认3Vector可设置容量增量Arraylist不可以。 ④从增删查改的效率来看 Arraylist和Vector如果是在指定位置检查或者是在集后尾部进行插入和删除的话时间复杂度是O(1),但如果是其他地方插入或者删除的话时间复杂度就变成了O(n)。 注意可变长度数组的原理当元素哥个数超过数组长度时会产生一个新的数组将原数组的数据复制到新数组再将新的元素添加到新数组中。 11、equals和“ ”的区别 “ ”是比较两个变量或实例是否指向同一个内存空间而equals是比较两个变量或实例所指向的内存空间的值是否相等。 对于基本数据类型的变量如Byteshortcharintfloatlongdouble和boolean“”直接对其值进行比较 对于引用数据类型的变量则是对其内存地址的比较。 因此“ ”比较的是值只是引用类型变量存的是对象的地址。 而equals方法是Object类的方法比较的是字符串中所包含的内容是否相同。 12、使用过的关系型数据库以及非关系型数据库它们之间的区别 关系型数据库mysql、Oracle 非关系型数据库redis --是一个key-value的nosql数据库 Oracle与mysql区别 mysql开源免费的中小型关系数据库管理系统RDBMS Oracle收费的大型、对象关系数据库管理系统ORDMS mysql使用三用户名、密码、位置验证客户 Oracle有用户名、密码、配置文件、本地身份验证、外部身份验证等 mysql事务是自动提交 Oracle需要手动写commit或点提交按钮 mysql没有Oracle的表空间、角色管理、快照、同义词、包、自动存储管理。 字符类型 mysqlchar0-255、varchar0-65,535 Oraclechar、nchar1-2000varchar2、nvarchar20-4000 mysqllike ‘%字符串%’ oracle也有li’ke ‘%字符串%’使用字符串比较数instr(字符串,‘字符串’)0更精确 mysql有Date、Time日期类型 Oracle只有Date mysql非空字段也有空的内容 Oracle定义非空字段就不允许有空的内容 所以将mysql数据传过来Oracle要注意导数据时要对空字符进行判断如果为null或者空字符、需要把它转换成一个空格的字符串 oracle与redis的区别 ①数据模型 Oracle和MySQL都是关系型数据库数据以表格形式存储每个表格由若干个列组成每列定义了数据的类型和约束条件。表格之间可以建立关系例一对多多对多等这些关系需要使用外键进行定义。 redis是一种键值型数据库数据以键值对的形式存储的其中键是一个字符串值可以是字符串、哈希、列表、集合或有序集合等。 ②查询语句 Oracle和MySQL都是使用sql查询语言来查询数据。sql是一种标准的关系型数据库查询语言。 redis使用一种类似于命令的语言来查询和操作数据其中每个命令都对应一个具体的操作例如set用于设置键值对get用于获取键值对应的值等。 ③扩展性 mysql和Oracle支持分布式和扩展性但需额外配置且复杂。 redis支持分布式可在多台服务器上分布数据以提高性能和可用性。 ④适用场景 mysql和Oracle使用于处理结构化数据的场景支持高度优化的查询引擎可处理复杂的查询和聚合操作 redis适用于高速读写的场景例如缓存、消息队列等redis读写速度非常快可以在短时间内处理大量的请求 13、mao集合取并集、差集、交集 map1、map2 map是一个key和value的键值对的集合 ①map并集 public static MapString,Object getUnion( MapString,Object map1, MapString,Object map2){SetString bigMapKey map1.keySet();SetString smallMapKey map2.keySet();SetString differenceSet Sets.union(bigMapKey,smallMapKey);MapString,Object result Maps.newHashMap();for(String key : differenceSet){if(map1.containsKey(key)){result.put(key,map1.get(key));}else{result.put(key,map2.get(key));}}return result ; } .containsKey判断是否有key .get()获取对应的value Guava的union()返回两个集合的不可修改的视图 ②差集 bigmap、smallmap public static MapString,Object getDifference( MapString,Object bigMap, MapString,Object smallMap){SetString bigMapKey bigMap.keySet();SetString smallMapKey smallMap.keySet();SetString differenceSet Sets.difference(bigMapKey,smallMapKey);MapString,Object result Maps.newHashMap();for(String key : differenceSet){result.put(key,bigMapKey.get(key)); }return result ; } difference()函数返回两个集合的差集、即返回的在第一个集合但不在第二个集合中的元素。 ③map交集 map1、map2 public static MapString,Object getInter( MapString,Object map1, MapString,Object map2){SetString bigMapKey map1.keySet();SetString smallMapKey map2.keySet();SetString differenceSet Sets.intersection(bigMapKey,smallMapKey);MapString,Object result Maps.newHashMap();for(String key : differenceSet){result.put(key,map1.get(key)); }return result ; } intersection()方法用于返回两个或者更多集合中包含的元素即交集。 14、String、StringBuffer和StringBuilder的区别 string ①String的值是不可变的这就导致每次对String的操作都会生成新的String对象不仅效率低且浪费优先的内存空间。 ②不可变 ③ ④ StringBuffer ①StringBuffer是可变类和线程安全的字符串操作类任何对它指向的字符串的操作都不会产生新的对象每个StringBuffer对象都有一定的缓冲区容量当字符串大小没有超过容量时不会分配新的容量当字符串大小超过容量时会自动分配容量。 ②可变 ③线程安全 ④多线程操作字符串 StringBuilder ①可变类速度更快。 ②可变 ③线程不安全 ④单线程操作字符串 StringBuffer对象是一个字符序列可变的字符串没有重新生成一个对象而是在原来的对象中可以连接新的字符串。 StringBuilder类也代表可变字符串对象。StringBuffer和StringBuilder基本相似。不同的是StringBuffer是线程安全的而StringBuilder没有实现线程安全功能。 执行速度 StringBuilderStringBufferString 操作少量数据用String多线程操作字符串缓冲区下操作大量数据用StringBuffer单线程操作字符串缓冲区下操作大量数据用StringBuilder。 15、Java常用包、集合、线程、io、数据库索引 java常用包 java.io包通过文件系统数据流和序列化提供系统的输入与输出 java.lang包提供了java语言进行程序设计的基础类 java.util包集合类。日期等各种实用工具类 java.sql包Java访问并处理存储数据源中的数据api java.net包提供实现网络应用与开发的类 集合 Java集合大致可分为List、Set、queue和Map四种体系 其中List代表有序、重复的集合Set代表无序、不可重复的集合Queue代表一种队列集合实现Map接口中键和值一一映射。 线程 java语言主要提供了两种实现线程的方式 ①继承Thread类创建线程类 ②实现Runable接口创建线程类 ① 1定义继承Thread类并重写Thread类的run()方法该run()方法的方法体就代表了线程需要完成的任务。因此把run()方法称为线程执行体。 2创建Thread子类的实例即创建子线程对象。 3调用线程对象的start()方法来启动该线程。 ② 1定义实现Runable接口并重写Runable接口的run()方法该run()方法的方法体就代表了线程需要完成的任务。 2创建Runable实现类的实例并以此实例作为Thread的target来创建Thread对象该Thread对象才是真正的线程对象。 3调用该Thread对象的start()方法来启动该线程。 16、空指针异常怎么避免 ①加判断if(status.equals(success)){} ②初始化默认值 ③返回空集合return list null ? new ArrayList() : list; 17、怎么通过内部循环结束整体循环 break跳出循环、结束循环如果是内层循环仅终止内层循环外层循环不会终止 continue跳出本次循环、继续下次循环 return程序返回到调用某方法的地方 break标签跳出循环到标签处结束标签内的循环在多重循环的最外层设置标签配合break可终止整个循环 设置a for循环外加“a:” break a; continue标签跳出循环到标签处结束此次循环从此标签处开始下一次循环 18、MVC模型 M-model模型是指模型表示业务规则 V-view试图是指用户看到并与之交互的界面 C-controller控制器是指控制器接受用户的输入并调用模型和试图去完成用户的需求控制器本身不输出任何东西和做任何处理 19、面向对象是什么 面向对象是把构成问题事务分解成各个对象建立对象的目的不是为了完成一个步骤而是为了描述某个事件在整个解决问题的步骤中的行为。 面向过程就是分析出解决问题所需的步骤然后用函数把这些步骤一步步实现使用的时候一个个依次调用就可以了。 20、Java线程池、Java的jvm、 数据库sql优化、spring特征 Java的线程池通过Executor框架来实现 用到Executor、ExecutorService ThreadPoolExecutor、Future、FutureTask等几个大类 21、什么是三次握手 22、什么是依赖注入 23、GC是什么原理垃圾回收 24、REST接口用到的注解以及注解的作用
http://www.pierceye.com/news/419057/

相关文章:

  • 公司网站虚假宣传但网站不是我做的wordpress自豪地采用修改
  • 山西大同网站建设哪家好宜宾seo快速排名
  • 网站为什么做黄词骗流量网站图标在哪里修改
  • 手机移动端网站建设青岛门户网站建设
  • 专业APP客户端做网站php完整电商网站开发源码
  • 网站代码500网站的页面风格是什么
  • 电商开发网站公司腾讯营销平台
  • 商务网站是什么网站建设技术有哪些
  • 专门做团购的网站有哪些微信小程序开发者工具官网下载
  • 网站开发的项目需求山东省住房和城乡建设厅电话
  • 网站建设初期推广方式安徽网站建设价格
  • 淘宝购买网站建设工业皮带怎么做免费的网站
  • 华城建设集团有限公司官方网站嵌入式软件开发教程
  • 建设邮箱网站桔子建站官网
  • 电子商务网站模板xampp下安装wordpress
  • 可以做动图的视频网站校园网站建设的目的
  • 专业网站制作公司塞尼铁克dw网页设计作品简单
  • 福州做网站公司有哪些中小企业网站制作塞尼铁克
  • 公司网站 钓鱼网站网站建设实训报告的内容怎么写
  • 摄影网站建设内容硬件开发语言有哪些
  • 怎么在主机上的建设网站做网站后台需要写代码吗
  • 网站建设发信息wordpress 科技类主题
  • 一站式进货平台网站建设为什么做网站编辑
  • 免费建站哪家好网站商城建设合同免费下载
  • 网站开发filter北京互联网
  • 德州市市政工程建设总公司网站设计公司的运营模式
  • 网站源码怎么弄境外注册网站
  • 肥城网站建设视频解析接口网站怎么做
  • 深圳做互联网教网站公司五百亿网站建设
  • 如何建自己网站周口网站建设费用