java面试常见难点概念总结

合集下载

JAVA基础知识重难点

JAVA基础知识重难点

JAVA基础知识重难点声明:以下内容为个⼈期末对JAVA基础知识的总结,来源于各种资料搜索和个⼈理解整理⽽出,也许有不妥的地⽅,欢迎学习指教1.Java语⾔具有可移植性、可跨平台运⾏特点的原因是什么?Java——编译器——jvm——平台Java⽤编译器编译成.class的字节码⽂件,字节码类似于机器指令,同⼀字节码可以在任何带jvm虚拟机的平台运⾏,从⽽实现java的跨平台性。

所谓语⾔的跨平台性并不是说是源⽂件的跨平台性(如果要这么定义那么任何的语⾔都是跨平台性的),⽽是指源⽂件编译⽣成的⽂件的跨平台性。

因为Java字节码是结构中⽴的,所以Java 的程序是可移植的。

他们可以不经过重新编译⽽在任何⼀个机器上运⾏。

2.为什么说Java语⾔具有健壮、安全的特性?Java 编译器检测出许多别的语⾔只有在⾸次执⾏的时候才会指出的问题。

Java 已经清除了⼏种在其它语⾔中被发现易于出错的编程结构。

Java具有运⾏时异常处理特性,垃圾回收机制,它为健壮性提供了编程⽀持。

Java 实现了⼏种安全机制以保护你的系统遭受危险程序的破坏。

3.简述Java虚拟机(JVM)的作⽤是什么?JVM就是Java虚拟机,它是⼀个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。

JVM有⾃⼰完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。

JVM是java字节码执⾏的引擎,还能优化java字节码,使之转化成效率更⾼的机器指令。

Java程序的跨平台特性主要就是因为JVM 实现的。

在编译java程序时会将写好的源程序通过编译器编译⽣成.class⽂件(⼜称为字节码⽂件),不同的平台对应着不同的JVM,之后就是通过JVM内部的解释器将字节码⽂件解释成为具体平台上的机器指令执⾏,所以就可以实现java程序的跨平台特性。

4.简述JVM的垃圾回收机制。

确保被引⽤对象的内存不被错误的回收。

当⼀个对象不再有任何⼀个引⽤变量指向它时,这个对象就被应⽤抛弃。

java 面试 工作中印象深刻的问题

java 面试 工作中印象深刻的问题

在工作中,经常会面临面试的挑战,特别是针对技术岗位,比如Java开发。

在Java面试过程中,常常会遇到一些让人印象深刻的问题,这些问题既能考察面试者对Java语言的掌握程度,也能考察其解决问题的能力和思维方式。

在这篇文章中,我将从不同的角度出发,讨论工作中印象深刻的Java面试问题,以及我个人对这些问题的理解和观点。

1. Java基础知识在Java面试中,经常会遇到一些关于Java基础知识的问题,比如Java的数据类型、面向对象编程、异常处理、多线程等方面。

这些问题可以考察面试者对Java语言基础的掌握程度。

面试官可能会问到:“请解释一下Java中的多态性是什么?”或者是“Java中的异常处理机制是怎样的?”通过这些问题,面试官可以了解面试者对于Java基础知识的理解和应用能力。

对于我个人来说,Java基础知识的掌握是非常重要的,因为它是我在工作中进行Java开发的基础。

我深刻理解Java中的多态性是一种利用超类引用变量引用子类对象的能力,以及异常处理机制是通过try-catch-finally语句块来实现对异常的捕获和处理。

这些基础知识对于我在工作中设计和开发Java应用程序起着至关重要的作用。

2. Java性能优化与调优除了Java基础知识外,在工作中的Java面试中,也经常会遇到一些关于Java性能优化与调优的问题。

这些问题可能涉及到Java虚拟机的内存模型、垃圾回收机制、并发编程、性能分析与调优等方面。

面试官可能会问到:“请介绍一下Java中的垃圾回收机制?”,或者是“在Java中如何实现线程同步?”,这些问题可以考察面试者对于Java性能优化与调优的理解和实践能力。

我个人对于Java性能优化与调优也有着深入的理解和实践经验。

在我之前的项目中,我曾经针对Java应用程序的性能问题进行过分析与调整,通过优化代码、调整JVM参数等手段,使得应用程序的性能得到了显著的提升。

我认为,Java性能优化与调优是Java开发中不可忽视的重要方面,只有深入理解并实践才能真正掌握这一技能。

java跳槽面试题目(3篇)

java跳槽面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java的基本特点。

解析:Java具有“一次编写,到处运行”的特点,具有跨平台性;具有简单易学、面向对象、分布式、解释型、健壮性、安全性、体系结构中立、多线程、动态性等特点。

2. 什么是JVM?请简述JVM的作用。

解析:JVM(Java虚拟机)是运行所有Java应用程序的虚拟机。

它的作用是执行Java字节码,为Java程序提供运行环境,保证Java程序跨平台运行。

3. 请简述Java中的四种访问控制符及其作用。

解析:- public:表示公开的访问控制符,可以在任何地方访问。

- private:表示私有的访问控制符,只能在类内部访问。

- protected:表示受保护的访问控制符,可以在类内部和子类中访问。

- default(无修饰符):表示默认的访问控制符,只能在本包内访问。

4. 什么是封装?请举例说明。

解析:封装是将类的属性和行为封装在一起,对外只提供有限的接口。

例如,一个学生类,包含姓名、年龄、性别等属性,以及学习、休息等方法。

5. 什么是继承?请举例说明。

解析:继承是子类继承父类的方法和属性。

例如,一个动物类,包含行走、吃食等方法,一个猫类继承自动物类,则猫类具有行走、吃食等方法。

6. 什么是多态?请举例说明。

解析:多态是指同一个方法在不同对象上有不同的行为。

例如,一个形状类,包含计算面积的方法,一个圆形和正方形类继承自形状类,计算面积的方法在圆形和正方形类中有不同的实现。

7. 什么是接口?请举例说明。

解析:接口是一种规范,定义了类应该具有的方法,但不提供具体实现。

例如,一个Comparable接口,定义了compareTo方法,用于比较两个对象的大小。

8. 什么是泛型?请举例说明。

解析:泛型是一种类型参数化技术,可以在编译时进行类型检查,提高代码的安全性。

例如,一个List<T>泛型集合,可以存储任意类型的元素。

二、Java集合框架1. 请简述Java集合框架中的常用类及其特点。

大厂java面试知识

大厂java面试知识

大厂Java面试知识在大厂面试中,Java是一个非常重要的技术栈。

掌握Java的基础知识和应用场景对于面试者来说至关重要。

本文将介绍一些大厂Java面试中常见的知识点,以帮助读者更好地准备面试。

1. Java基础知识在Java基础知识中,面试官通常会关注以下几个方面:1.1 Java语言特性•Java的面向对象特性:封装、继承和多态。

•Java的异常处理机制:try-catch-finally以及throw和throws的区别。

•Java的泛型:泛型的作用以及如何使用泛型。

•Java的反射机制:反射的概念、作用和使用场景。

1.2 Java集合框架•ArrayList和LinkedList的区别:底层数据结构、插入和删除操作的时间复杂度。

•HashMap和ConcurrentHashMap的区别:线程安全性、并发操作的实现原理。

•HashSet和TreeSet的区别:元素的唯一性、元素的存储顺序。

1.3 Java多线程•线程和进程的区别:线程是什么、线程的状态和生命周期。

•创建线程的方式:继承Thread类、实现Runnable接口、使用线程池。

•线程安全和线程同步:如何保证多线程的安全性、如何实现线程同步。

•线程通信:wait、notify和notifyAll的作用和使用方法。

1.4 Java虚拟机•Java内存模型:堆、栈、方法区的作用和特点。

•垃圾回收机制:垃圾回收算法、垃圾回收器的种类和使用。

•JVM调优:如何提高Java程序的性能和效率。

2. Java框架与工具在大厂面试中,对于Java框架和工具的掌握也是非常重要的。

2.1 Spring框架•Spring的核心概念:控制反转(IoC)和面向切面编程(AOP)的原理和作用。

•Spring的常用模块:Spring MVC、Spring Boot、Spring Cloud等的使用。

•Spring的事务管理:事务的传播行为、事务隔离级别和事务的并发控制。

java面试核心知识点整理 pdf

java面试核心知识点整理 pdf

在Java面试中,以下是一些核心知识点:
Java基础:包括Java的基本语法、面向对象的概念(如类、对象、继承、多态、封装等)、异常处理、集合框架(如List、Set、Map等)、泛型、流和Lambda 表达式等。

Java语言特性:包括自动拆装箱、枚举、注解、泛型擦除、Lambda表达式和Stream API等。

Java标准库:包括Java标准库中常用的类和接口,如String、StringBuffer、StringBuilder、Math、Random等。

数据结构和算法:包括数组、链表、栈、队列、二叉树等数据结构,以及排序算法(如冒泡排序、选择排序、插入排序等)、查找算法(如二分查找)等。

Java虚拟机(JVM):包括JVM的工作原理、内存模型、垃圾回收机制以及性能调优等。

Java多线程:包括线程的概念、线程的创建和启动方式、线程同步和锁机制(如synchronized关键字和ReentrantLock)等。

Java网络编程:包括TCP/IP协议和UDP/IP协议的基础知识,以及Socket 编程等。

Java Web开发:包括Web应用程序的基本概念,Servlet和JSP的原理和应用,MVC模式等。

Java框架:如Spring的核心概念,AOP的实现方式,以及MyBatis的使用等。

设计模式:如工厂模式、单例模式、观察者模式等常见的设计模式的实现和应用场景。

以上是Java面试中常见的核心知识点,掌握这些知识点有助于提高面试通过率。

java人事面试问题

java人事面试问题

java人事面试问题在面试中,Java是一个常见的技术领域,因此经常会有与Java相关的人事面试问题。

这些问题旨在评估应聘者在Java开发方面的知识、经验和技能。

以下是一些常见的Java人事面试问题:1. 请简要介绍Java的特点及其优势。

Java是一种面向对象的编程语言,具有跨平台、简单易学、安全可靠、可扩展等特点。

其优势包括高性能、丰富的开发工具和库、强大的社区支持等。

2. 请解释Java中的多态性是什么以及它的作用。

多态性是指在面向对象编程中,同一个方法可以根据不同的对象调用出现不同的行为。

它通过继承和重写实现,提高了代码的灵活性、可维护性,为程序扩展和重用提供了便利。

3. 请说明Java中的集合框架及其常用类。

Java的集合框架是一组类和接口,用于存储和操作对象。

常用的集合类包括ArrayList、LinkedList、HashMap、HashSet等。

它们提供了不同的数据结构和操作方式,适用于各种不同的场景。

4. 请解释Java中的线程是什么以及如何实现多线程。

线程是程序执行的最小单位,它允许多个任务同时执行。

在Java中,可以通过继承Thread类或实现Runnable接口来创建并启动线程。

同时,Java提供了丰富的线程工具和方法,如synchronized关键字、wait()、notify()等,用于实现线程同步与通信。

5. 请解释Java中的异常处理机制以及常用的异常类。

异常处理机制是Java用于捕获和处理在程序执行期间可能出现的错误情况。

它通过try-catch块来捕获异常,并使用throw关键字来抛出异常。

常用的异常类包括Exception(所有异常的父类)、RuntimeException(运行时异常)等。

6. 请解释Java中的反射是什么以及其应用场景。

Java的反射机制是指在运行时动态获取类的信息并操作对象。

通过反射,可以在运行时获取类的属性、方法和构造函数等信息,并进行动态调用。

Java高级面试题整理(附答案)

Java高级面试题整理(附答案)
如果你是印度板球迷,你可能能够与我的下一句话联系起来。字符串是Java的 VVS Laxman,即非常特殊的类。我还没有看到一个没有使用 String 编写的 Java 程序。这就是为什么对 String 的充分理解对于 Java 开发人员来说非常重要。
String 作为数据类型,传输对象和中间人角色的重要性和流行性也使这个问题在 Java 面试中很常见。
A foo() /\ /\ foo() B C foo() \/ \/ D foo()
即使我们删除钻石的顶部 A 类并允许多重继承,我们也将看到这个问题含糊性的一面。如果你把这个理由告诉面试官,他会问为什么 C++ 可以支持多重继承而 Java不行。嗯,在这种情况下,我会试着向他解释我下面给出的第二个原因,它不是因为技术难度, 而是更多的可维护 和更清晰的设计是驱动因素, 虽然这只能由 Java 言语设计师确认,我们只是推测。维基百科链接有一些很好的解释,说明在使用多重继
1)第一个原因是围绕钻石 形继承问题产生的歧义,考虑一个类 A 有 foo() 方法, 然后 B 和 C 派生自 A, 并且有自己的 foo() 实现,现在 D 类使 用多个继承派生自 B 和C,如果我们只引用 foo(), 编译器将无法决定它应该调用哪个 foo()。这也称为 Diamond 问题,因为这个继承方案的 结构类似于菱形,见下图:
为什么等待和通知需要从同步块或方法中调用, 以及 Java 中的 wait,sleep 和 yield 方法之间的差异,如果你还没有读过,你会觉得有趣。 为何 wait,notify 和 notifyAll 属于 Object 类? 为什么它们不应该在 Thread 类中? 以下是我认为有意义的一些想法:
2. 为什么 Java中不支持多重继承?

java面试问题及回答

java面试问题及回答

java面试问题及回答java面试问题及回答一1.Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。

与此相对,方法覆盖是说子类重新定义了父类的方法。

方法覆盖必须有相同的方法名,参数列表和返回类型。

覆盖者可能不会限制它所覆盖的方法的访问。

2.Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?当新对象被创建的时候,构造函数会被调用。

每一个类都有构造函数。

在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。

Java中构造函数重载和方法重载很相似。

可以为一个类创建多个构造函数。

每一个构造函数必须有它自己唯一的参数列表。

Java不支持像C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java不会创建默认的复制构造函数。

3.Java支持多继承么?不支持,Java不支持多继承。

每个类都只能继承一个类,但是可以实现多个接口。

4.接口和抽象类的区别是什么?Java提供和支持创建抽象类和接口。

它们的实现有共同点,不同点在于:接口中所有的方法隐含的都是抽象的。

而抽象类则可以同时包含抽象和非抽象的方法。

类可以实现很多个接口,但是只能继承一个抽象类类如果要实现一个接口,它必须要实现接口声明的所有方法。

但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

抽象类可以在不提供接口方法实现的情况下实现接口。

Java接口中声明的变量默认都是final的。

抽象类可以包含非final的变量。

Java接口中的成员函数默认是public的。

抽象类的成员函数可以是private,protected或者是public。

接口是绝对抽象的,不可以被实例化。

抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面试问题总结1、面向对象和面向过程的区别面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]发展到一定阶段后的产物。

面向对象是以功能来划分问题,而不是步骤。

面向过程是一种以过程为中心的编程思想。

“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。

就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

例子:围棋面向对象:1.黑白双方,这两个的行为是一模一样的2.棋盘系统,负责绘制画面3.规则系统,负责判断输赢面向过程:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。

2、mysql和oracle的区别mysql主要应用到中小型系统中,oracle一般应用在大型系统增长类型的区别:mysql有increment自增长方式,而oracle利用sequence实现增长mysql可以使用limit限制分页处理 eg:select * from table_nameORACLE处理翻页的SQL语句就比较繁琐了。

每个结果集只有一个rownum字段标明它的位置,并且只能用rownum<100,不能用rownum>80。

以下是经过分析后较好的两种ORACLE 翻页SQL语句(ID是唯一关键字的字段名):Select id from table_name where id in (select id from (select rownum as numrow,id from table_name where 条件1 order by 条件2) where numrow >80 and numrow <100) order by 条件3;数据类型的区别:比如oracle的varchar2,而mysql没有,mysql有int而oracle 没有3、Struts 2 和Servlet和JSP(1)Struts2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

它以webwork为核心采用拦截器机制对用户请求进行处理,也是一个按照MVC设计模式设计的一个web层框架,也是一个很大的Servlet。

他也可以有多个配置文件,各自的模块执行各自的功能Struts2处理过程:请求交给action之前会将请求数据封装成一个formbeaan对象,然后对formbena调用validate方法进行校验,通过校验的然后交给action的execute方法去处理返回一个响应的结果,没有通过校验的则返回一个错误页面,一般使用input指定。

(3)Servlet是一种java服务器端的应用程序具有独立于平台和协议的特性,可以生成动态的Web页面。

它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet生命周期:加载、实例化(一般是servlet容器来完成)、初始化(执行init 方法)、运行service方法(根据请求方式的不同分为doGet和doPost)处理请求、服务终止执行destroy销毁。

Servlet执行过程:当用户发送一个请求到某个Servlet的时候,Servlet容器会创建一个ServletRequst和ServletResponse对象。

在ServletRequst对象中封装了用户的请求信息,然后Servlet容器把ServletRequst和ServletResponse对象,传给用户所请求的Servlet,Servlet把处理好的结果写在ServletResponse中,然后Servlet容器把响应结果传给用户。

Servlet与JSP有什么区别?JSP是一种java动态页面技术,由html和java代码和tag组成。

而jsp编译以后实际上也是一个servlet,JSP擅长页面表现,而Servlet擅长处理逻辑用来控制业务流程,在struts2的MVC设计模式中中servlet 充当控制层而JSP充当表现层。

‘4、Hibernate和JDBC概念比较 : Hibernate是对JDBC的轻量级封装,是将对象持久化的框架,Hibernate 可以用在任何JDBC可以使用的场合,Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系。

而JDBC是一个可以执行SQL语句的JAVA程序。

由一组java类和接口组成。

性能比较:1、内存消耗:采用JDBC的架构无疑是最省内存的,Hibernate的架构次之2、运行效率:如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch语句,调整PreapredStatement的Batch Size和Fetch Size等参数,以及在必要的情况下采用结果集cache等等。

而一般情况下程序员是做不到这一点的。

因此Hibernate 架构表现出最快的运行效率。

3、开发效率:小项目中JDBC相率较高,Hibernate次之。

但在一般的大型项目中Hibernate的效率大的惊人。

相同点:◆两者都是JAVA的数据库操作中间件。

◆两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。

◆两者都可以对数据库的更新操作进行显式的事务处理。

不同点:◆JDBC使用标准SQL语言,而Hibernate使用HQL面向对象查询语言◆JDBC操作的是数据,是将SQL语句传送到DB中执行,而Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。

◆数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值随时保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。

JDBC仍然是最快的访问方式,不论是Create还是Read操作,都是JDBC快。

5、jQuery其实是一个轻量级的JavaScript库或者说是框架,jQuery简化了的JavaScript编程,使用更少的代码执行更多的功能。

6、Cookie和Session(1)定义:Cookie:是浏览器访问某个服务器时,服务器会创建一部分数据(以消息头set-cookie 的方式)发送给浏览器,浏览器会将这部分数据保存下来。

当浏览器再次访问该服务器时,会将这部分数据发送给服务器。

也是在客户端(浏览器)维护用户状态的一种状态管理技术。

Session:在服务器端维护用户状态的一种状态管理技术。

当浏览器访问服务器时,服务器会创建一个对象(session对象),同时,还会生成一个标识该对象的唯一的字符串(sessionId),服务器在默认情况下,使用cookie机制将sessionId发送给浏览器。

浏览器下次访问服务器时,会将sessionId携带给服务器,服务器会使用sessionId查找对应的session对象。

通过这种方式,来维护用户的状态。

(2) cookie 和session 的区别:① cookie数据存放在客户的浏览器上,session数据放在服务器上。

② cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

③ session会在一定时间内保存在服务器上。

当访问增多,会比较占用你服务器的性能,如果考虑到减轻服务器性能方面,应当使用COOKIE。

④单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

7、Spring的理解(1)概念Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。

Spring也是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。

(2)特点:① Spring实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式),这个类名为BeanFactory(实际上是一个接口),Spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。

② Spring提供了对IOC良好支持,IOC是一种编程思想,是一种架构艺术,利用这种思想可以很好地实现模块之间的解耦。

Ioc又称为依赖注入DI。

③ Spring提供了对AOP技术的良好封装, AOP称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为AOP。

8、工厂模式的理解:实例化对象,用工厂方法代替new操作返回一个类对象。

工厂类是指包含了一个专门用来创建其他对象的方法的类。

工厂类在多态性编程实践中是至关重要的。

它允许动态地替换类,修改配置,并且通常会使应用程序更加灵活。

熟练掌握工厂模式对高级PHP 开发人员来说是很重要的。

工厂模式通常用来返回符合类似接口的不同的类。

工厂的一种常见用法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应该实例化哪一个类。

9、C/S架构和B/S架构的区别(1)C/S 架构概念:是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

优点:1.C/S架构的界面和操作可以很丰富。

2.安全性能可以很容易保证,实现多层认证也不难。

3.由于只有一层交互,因此响应速度较快。

缺点:1.适用面窄,通常用于局域网中。

2.用户群固定。

由于程序需要安装才可使用,因此不适合面向一些不可知的用户。

3.维护成本高,发生一次升级,则所有客户端的程序都需要改变。

(2)B/S架构概念:的全称为Browser/Server,即浏览器/服务器结构。

相关文档
最新文档