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

荆州网站开发好招人吗房子简装修效果图片

荆州网站开发好招人吗,房子简装修效果图片,如何做医药类网站,办公空间设计主题名称普联一面4.2面试记录 文章目录 普联一面4.2面试记录1.jdk和jre的区别2.java的容器有哪些3.list set map的区别4.get和post的区别5.哪个更安全6.java哪些集合类是线程安全的7.创建线程有哪几种方式8.线程的状态有哪几种9.线程的run和start的区别10.什么是java序列化11.redis的优…普联一面4.2面试记录 文章目录 普联一面4.2面试记录1.jdk和jre的区别2.java的容器有哪些3.list set map的区别4.get和post的区别5.哪个更安全6.java哪些集合类是线程安全的7.创建线程有哪几种方式8.线程的状态有哪几种9.线程的run和start的区别10.什么是java序列化11.redis的优缺点12.redis主要数据类型13.用spring有什么优点 这么多框架为什么要选spring14.java链接数据库的步骤15.数据库用过哪些16.mybatis框架和jdbc相比有什么优势17.了解过mybatis怎么配置事务吗18.mybatis怎么实现的懒加载19.linux部署时进行了哪些操作20.linux部署过程中用到的常用命令21.nginx反向代理有什么作用 1.jdk和jre的区别 JDKJava Development Kit它是功能齐全的 Java SDK是提供给开发者使用能够创建和编译 Java 程序的开发套件。它包含了 JRE同时还包含了编译 java 源码的编译器 javac 以及一些其他工具比如 javadoc文档注释工具、jdb调试器、jconsole基于 JMX 的可视化监控⼯具、javap反编译工具等等。 JREJava Runtime Environment 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合主要包括 Java 虚拟机JVM、Java 基础类库Class Library。 也就是说JRE 是 Java 运行时环境仅包含 Java 应用程序的运行时环境和必要的类库。而 JDK 则包含了 JRE同时还包括了 javac、javadoc、jdb、jconsole、javap 等工具可以用于 Java 应用程序的开发和调试。如果需要进行 Java 编程工作比如编写和编译 Java 程序、使用 Java API 文档等就需要安装 JDK。而对于某些需要使用 Java 特性的应用程序如 JSP 转换为 Java Servlet、使用反射等也需要 JDK 来编译和运行 Java 代码。因此即使不打算进行 Java 应用程序的开发工作也有可能需要安装 JDK。 不过从 JDK 9 开始就不需要区分 JDK 和 JRE 的关系了取而代之的是模块系统JDK 被重新组织成 94 个模块 jlinkopen in new window 工具 (随 Java 9 一起发布的新命令行工具用于生成自定义 Java 运行时映像该映像仅包含给定应用程序所需的模块) 。并且从 JDK 11 开始Oracle 不再提供单独的 JRE 下载。 在 Java 9 新特性概览open in new window这篇文章中我在介绍模块化系统的时候提到 在引入了模块系统之后JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 jlink 工具创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。 也就是说可以用 jlink 根据自己的需求创建一个更小的 runtime运行时而不是不管什么应用都是同样的 JRE。 定制的、模块化的 Java 运行时映像有助于简化 Java 应用的部署和节省内存并增强安全性和可维护性。这对于满足现代应用程序架构的需求如虚拟化、容器化、微服务和云原生开发是非常重要的。 著作权归JavaGuide(javaguide.cn)所有 基于MIT协议 原文链接https://javaguide.cn/java/basis/java-basic-questions-01.html 2.java的容器有哪些 List:特定顺序保存一组数据。 Set:集合不允许有重复的数据。 Queue:队列在一端插入数据一端弹出数据。 Map:关联数据字典。存储一组Key-Value值。 3.list set map的区别 List:可以存储重复数组基于数组或者链表实现。 Set:不可以存储重复元素基于Map实现。 Map:键值对方式存储存储的键的不能重复基于哈希表或者红黑色实现。 4.get和post的区别 1post更安全不会作为url的一部分不会被缓存、保存在服务器日志、以及浏览器浏览记录中 2post发送的数据更大get有url长度限制 3post能发送更多的数据类型get只能发送ASCII字符 4post比get慢 5post用于修改和写入数据get一般用于搜索排序和筛选之类的操作淘宝支付宝的搜索查询都是get提交目的是资源的获取读取数据 5.哪个更安全 post 6.java哪些集合类是线程安全的 Vector Vector 是 Java 中最早的一个集合类它使用 synchronized 关键字来实现线程安全。即使是在多线程环境下多个线程操作同一个 Vector 实例时也可以保证线程安全。虽然 Vector 在多线程环境中有很好的线程安全性但它的性能比较低建议在单线程环境中使用。 Hashtable Hashtable 是 Java 中最早的一个键值对映射容器也是使用 synchronized 关键字来实现线程安全的。它的每个 put、remove 和 get 操作都是原子性的因此它能够保证对于多个线程同时访问 Hashtable 的情况下没有线程会看到错误的值。 ConcurrentHashMap ConcurrentHashMap 是 Java 并发包中提供的一个线程安全的哈希表实现它会将整个表分为多个段Segment每个段都是一个独立的哈希表每个线程只能访问特定的段从而实现了并发访问时的线程安全。 CopyOnWriteArrayList CopyOnWriteArrayList 是 Java 并发包中提供的一个线程安全的 List 实现它通过复制原有的 List 来实现并发访问的线程安全。每次对 CopyOnWriteArrayList 进行修改时都会创建一个新的数组因此它的写操作性能比较低但它的读操作性能非常高。 ConcurrentLinkedQueue ConcurrentLinkedQueue 是 Java 并发包中提供的一个线程安全的队列实现它使用链表来存储元素从而实现了高效的并发性能。和 CopyOnWriteArrayList 一样它的读操作是非常高效的。 7.创建线程有哪几种方式 java创建线程Thread的5种方式_java new thread 方法-CSDN博客 8.线程的状态有哪几种 java源码 /*** A thread state. A thread can be in one of the following states:* ul* li{link #NEW}br* A thread that has not yet started is in this state.* /li* li{link #RUNNABLE}br* A thread executing in the Java virtual machine is in this state.* /li* li{link #BLOCKED}br* A thread that is blocked waiting for a monitor lock* is in this state.* /li* li{link #WAITING}br* A thread that is waiting indefinitely for another thread to* perform a particular action is in this state.* /li* li{link #TIMED_WAITING}br* A thread that is waiting for another thread to perform an action* for up to a specified waiting time is in this state.* /li* li{link #TERMINATED}br* A thread that has exited is in this state.* /li* /ul** p* A thread can be in only one state at a given point in time.* These states are virtual machine states which do not reflect* any operating system thread states.** since 1.5* see #getState*/ public enum State {/*** Thread state for a thread which has not yet started.*/NEW,/*** Thread state for a runnable thread. A thread in the runnable* state is executing in the Java virtual machine but it may* be waiting for other resources from the operating system* such as processor.*/RUNNABLE,/*** Thread state for a thread blocked waiting for a monitor lock.* A thread in the blocked state is waiting for a monitor lock* to enter a synchronized block/method or* reenter a synchronized block/method after calling* {link Object#wait() Object.wait}.*/BLOCKED,/*** Thread state for a waiting thread.* A thread is in the waiting state due to calling one of the* following methods:* ul* li{link Object#wait() Object.wait} with no timeout/li* li{link #join() Thread.join} with no timeout/li* li{link LockSupport#park() LockSupport.park}/li* /ul** pA thread in the waiting state is waiting for another thread to* perform a particular action.** For example, a thread that has called {code Object.wait()}* on an object is waiting for another thread to call* {code Object.notify()} or {code Object.notifyAll()} on* that object. A thread that has called {code Thread.join()}* is waiting for a specified thread to terminate.*/WAITING,/*** Thread state for a waiting thread with a specified waiting time.* A thread is in the timed waiting state due to calling one of* the following methods with a specified positive waiting time:* ul* li{link #sleep Thread.sleep}/li* li{link Object#wait(long) Object.wait} with timeout/li* li{link #join(long) Thread.join} with timeout/li* li{link LockSupport#parkNanos LockSupport.parkNanos}/li* li{link LockSupport#parkUntil LockSupport.parkUntil}/li* /ul*/TIMED_WAITING,/*** Thread state for a terminated thread.* The thread has completed execution.*/TERMINATED; }总算把线程六种状态的转换说清楚了 - 掘金 (juejin.cn) 9.线程的run和start的区别 Java中的run()方法和start()的区别_start()方法和 run()的区别-CSDN博客 10.什么是java序列化 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中或者在网络传输 Java 对象这些场景都需要用到序列化。 简单来说 序列化将数据结构或对象转换成二进制字节流的过程反序列化将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程 对于 Java 这种面向对象编程语言来说我们序列化的都是对象Object也就是实例化后的类(Class)但是在 C这种半面向对象的语言中struct(结构体)定义的是数据结构类型而 class 对应的是对象类型。 下面是序列化和反序列化常见应用场景 对象在进行网络传输比如远程方法调用 RPC 的时候之前需要先被序列化接收到序列化的对象之后需要再进行反序列化将对象存储到文件之前需要进行序列化将对象从文件中读取出来需要进行反序列化将对象存储到数据库如 Redis之前需要用到序列化将对象从缓存数据库中读取出来需要反序列化将对象存储到内存之前需要进行序列化从内存中读取出来之后需要进行反序列化。 维基百科是如是介绍序列化的 序列化serialization在计算机科学的数据处理中是指将数据结构或对象状态转换成可取用格式例如存成文件存于缓冲或经由网络中发送以留待后续在相同或另一台计算机环境中能恢复原先状态的过程。依照序列化格式重新获取字节的结果时可以利用它来产生与原始对象相同语义的副本。对于许多对象像是使用大量引用的复杂对象这种序列化重建的过程并不容易。面向对象中的对象序列化并不概括之前原始对象所关系的函数。这种过程也称为对象编组marshalling。从一系列字节提取数据结构的反向操作是反序列化也称为解编组、deserialization、unmarshalling。 综上序列化的主要目的是通过网络传输对象或者说是将对象存储到文件系统、数据库、内存中。 https://www.corejavaguru.com/java/serialization/interview-questions-1 著作权归JavaGuide(javaguide.cn)所有 基于MIT协议 原文链接https://javaguide.cn/java/basis/serialization.html 11.redis的优缺点 优点 高性能Redis是一个基于内存的数据库数据存储在RAM中因此具有非常快的读写速度。它采用了高效的数据结构和算法能够在微秒级别完成大量的操作使其成为处理高并发场景的理想选择。简单易用Redis提供了简洁、直观的命令行接口和易于使用的API使开发人员可以轻松地进行数据存储和检索。其支持丰富的数据类型如字符串、哈希表、列表、集合和有序集合可以满足不同场景下的需求。数据持久化Redis支持数据的持久化存储可以将内存中的数据保存到磁盘上以防止数据丢失。它提供了两种持久化方式快照snapshotting和日志追加append-only file用户可以根据实际需求选择适合的方式。高可用性Redis支持主从复制和Sentinel机制可以实现数据的自动备份和故障转移。主从复制可以将数据从主节点复制到多个从节点提高读取性能和数据冗余Sentinel机制可以监控主节点的状态并在主节点故障时自动切换到从节点确保系统的高可用性。 缺点 内存限制由于Redis的数据存储在内存中因此受到可用内存大小的限制。当数据量超过内存容量时性能会受到影响甚至导致系统崩溃。虽然Redis提供了数据淘汰策略和内存优化选项但仍需要合理规划和管理内存资源。单线程模型Redis采用单线程模型来处理客户端请求这意味着在高并发场景下性能可能受到限制。虽然Redis通过异步操作和事件驱动的方式提高了并发处理能力但在某些特定场景下单线程模型可能成为瓶颈。缺乏复杂查询支持Redis主要用于键值对存储和简单的数据结构操作并不支持复杂的查询操作。相比之下关系型数据库具有更强大的查询语言和查询优化。 12.redis主要数据类型 Redis 提供了丰富的数据类型常见的有五种String字符串Hash哈希List列表Set集合、Zset有序集合。 一文读懂Redis五种数据类型及应用场景 - 知乎 (zhihu.com) **这篇知乎强烈推荐**从底层数据结构到应用场景及解决办法佬太强了 13.用spring有什么优点 这么多框架为什么要选spring 1方便解耦简化开发 Spring 就是一个大工厂可以将所有对象的创建和依赖关系的维护交给 Spring 管理。 2方便集成各种优秀框架 Spring 不排斥各种优秀的开源框架其内部提供了对各种优秀框架如 Struts2、Hibernate、MyBatis 等的直接支持。 3降低 Java EE API 的使用难度 Spring 对 Java EE 开发中非常难用的一些 APIJDBC、JavaMail、远程调用等都提供了封装使这些 API 应用的难度大大降低。 4方便程序的测试 Spring 支持 JUnit4可以通过注解方便地测试 Spring 程序。 5AOP 编程的支持 Spring 提供面向切面编程可以方便地实现对程序进行权限拦截和运行监控等功能。 6声明式事务的支持 只需要通过配置就可以完成对事务的管理而无须手动编程。 14.java链接数据库的步骤 注册驱动 告诉Java要连接什么数据库 获得连接 表示JVM的进程与数据库之间的通道打开 获得数据库操作对象 它专门执行sql语句的对象 执行sql 语句 处理查询结果集 只有执行select 语句才有的步骤 释放资源 使用完后一定要关闭 原文链接https://blog.csdn.net/qq_52252193/article/details/121348505 15.数据库用过哪些 mysql mongodb 16.mybatis框架和jdbc相比有什么优势 针对JDBC编程的劣势MyBatis提供了以下解决方案具体如下。 问题一数据库链接创建、释放频繁会造成系统资源浪费从而影响系统性能。 解决方案在SqlMapConfig.xml中配置数据链接池使用连接池管理数据库链接。 问题二SQL语句在代码中硬编码造成代码不易维护。在实际应用的开发中SQL变化的可能较大。在传统JDBC编程中SQL变动需要改变Java代码违反了开闭原则。 解决方案MyBatis将SQL语句配置在MyBatis的映射文件中实现了与Java代码的分离。 问题三使用preparedStatement向占位符传参数存在硬编码因为SQL语句的where条件不一定可能多也可能少修改SQL需要修改代码造成系统不易维护。 解决方案MyBatis自动将Java对象映射至SQL语句通过Statement中的parameterType定义输入参数的类型。 问题四JDBC对结果集解析存在硬编码查询列名SQL变化导致解析代码变化造成系统不易维护。 解决方案MyBatis自动将SQL执行结果映射至Java对象通过Statement中的resultType定义输出结果的类型。 作者黑马程序员 链接https://www.zhihu.com/question/21186788/answer/2516715579 来源知乎 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。 17.了解过mybatis怎么配置事务吗 MyBatis六MyBatis使用事务 - 青杉 - 博客园 (cnblogs.com) 18.mybatis怎么实现的懒加载 MyBatis 延迟加载懒加载一篇入门 - 知乎 (zhihu.com) 19.linux部署时进行了哪些操作 宝塔面板 基础环境搭建 开放端口 上传jar包前端打包成dist同样上传 20.linux部署过程中用到的常用命令 部署项目时常用的 Linux 命令-CSDN博客 21.nginx反向代理有什么作用 终于有人把正向代理和反向代理解释的明明白白了-腾讯云开发者社区-腾讯云 (tencent.com)
http://www.w-s-a.com/news/507590/

相关文章:

  • 网站建设的技术方案模板易做文学网站的logo
  • 建设国家标准官方网站响应式网站切图
  • 网站链接数怎么做wordpress安装网址
  • 沈阳建网站 哪家好如何做旅游网站推销
  • 继续网站建设南通网站建设方法
  • 淮南公司网站建设如果做京东优惠卷的网站
  • 二手房网站平台怎么做项目工程监理公司网站建设方案
  • 秦皇岛做网站公司小说推广平台有哪些
  • php网站做分享到朋友圈天元建设集团有限公司信用代码
  • 邱县做网站在线免费图片编辑器
  • 网站备份网站做网站如何把支付宝微信吧
  • 做网站的怎么获取客户信息晋城建设局网站
  • 新开传奇网站发布网单职业wordpress建站网页无法运作
  • 海南省住房和城乡建设厅官方网站网站开发有哪些语言
  • 网站开发排期表免费网站建设策划
  • 飞沐网站设计江苏建设人才网证书查询
  • 网站优化的意义怎么帮商家推广赚钱
  • 安顺公司做网站福州建设发展集团有限公司网站
  • 普陀企业网站建设做散客机票的网站如何推广
  • 河北网站建设与制作建设宁波市分行的互联网网站
  • python做网站是不是特别慢百度推广基木鱼
  • 卖网站链接东营住房和城乡建设信息网
  • 网站后台如何上传ico图标单位建设网站需要的材料
  • 如何建淘客网站郑州做网站最好的公司
  • 连锁酒店网站方案o2o网站建设方案
  • 功能型网站响应式网站原理
  • 聊城建设网站骨干校 建设网站
  • 网站建设与管理是干嘛的中国新闻社是什么单位
  • 帮别人做视频剪辑的网站传业做微采商城网站
  • 设计一个网站开发方案宣传片制作企业