目录
1.什么是B/S架构,什么是C/S架构?
C/S(Client/Server),客户端/服务端架构模式,服务器端负责数据的管理,客户端负责完成和用户的交互。
B/S(Browser/Server),浏览器/服务器程序,是对C/S架构的一种变化或者改进的架构。B/S架构不用安装客户端,只需要在客户机上安装一个浏览器,服务端安装一种数据库,就可以通过webservice实现浏览器和数据库的数据交互。这种架构,前端极少处理事务逻辑,大部分的事务逻辑都在服务端处理。
区别:
- 硬件环境要求不同:CS架构需要安装客户端且建立在局域网之上,对硬件的要求高;BS架构不需要安装客户端且建立在广域网之上,对硬件的要求低
- 系统维护、升级难易不同:CS的升级维护需要在客户端和服务端都进行,难度大;BS架构的维护升级只需要处理服务端即可,相对简便
- 系统安全级别不同:CS结构采取点对点的结构模式,使用的网络协议安全级别较高;BS结构采取一点对多点、多点对多点的开放式结构模式,安全性有待提高
- 系统速度不同:CS结构(二层)在逻辑结构上比BS结构(三层)少一层,对于相同的任务,CS结构完成的速度总比BS结构快,使得CS更利于处理大量数据。另外,由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快
- 交互性不同:CS结构的交互性很强,在CS结构中,客户机有完整的客户端软件,能处理大量的、实时的数据流,响应速度快。BS结构虽然可以提供一定的交互能力,但交互能力很有限
2.JAVA有 几种技术开发平台
- Java SE标准版,是为开发普通桌面和商务应用程序提供的解决方案。 JavaSE是三个平台中最核心的部分, JavaEe和 JavaME都是从 JavaSE的基础上发展而来的, JavaSE平台中包括了Java最核心的类库,如集合、IO、数据库连接以及网络编程等。
- Java EE企业版,是为开发企业级应用程序提供的解决方案。 JavaEE可以被看作一个技术平台,该平台用于开发、装配以及部署企业级应用程序,其中主要包括 Servlet、JSP、 Javabean、JDBC、EJB、Web等技术°
- Java ME小型版,是为开发电子消费产品和嵌入式设备提供的解决方案。 JavaME主要用于小型数字电子设备上软件程序的开发例如,为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,JavaME提供了HTTP等高级Internet协议,使移动电话能以Client/ Server方式直接访问 Internet的全部信息,提供最高效率的无线交流
3.JDK?JRE?
JDK是java开发工具包,JRE是java运行环境
4.JAVA语言的特点?
简单易学、有丰富的类库
面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)
与平台无关性(JVM是Java跨平台使用的根本)
可靠安全、支持多线程
5.面向对象和面向过程的方式?
①面向过程:一种较早的编程思想,顾名思义就是该思想是站着过程的角度思考问题,强调的就是功能行为,功能的执行过程,即先后顺序,而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了
②面向对象:一种基于面向过程的新编程思想,顾名思义就是该思想是站在对象的角度思考问题,我们把多个功能合理放到不同对象里,强调的是具备某些功能的对象。具备某种功能的实体,称为对象。面向对象最小的程序单元是:类。面向对象更加符合常规的思维方式,稳定性好,可重用性强,易于开发大型软件产品,有良好的可维护性。在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚
6.Java的数据结构有哪些?
线性表、链表、栈、队列、图、树
7.arraylist和linkedlist的区别?
数据结构不同,效率不同,自由性不同,主要控件开销不同
8.类和对象的关系?
类是对象的抽象,对象是类的具体
根据一类对象进行概括,将对象的特征概括为属性,将对象的行为概括为方法,将这一类对象用一个类表示 --- 类是对象的概括/抽取
通过new关键字来创建这个对象,然后可以给对象中的属性赋值,也可以调用方法
9.隐式转换和显示转换的区别
显示转换就是类型强转,把一个大类型的数据强制赋值给小类型的数据;隐式转换就是大范围的变量能够接受小范围的数据;隐式转换和显式转换其实就是自动类型转换和强制类型转换。
Char类型可以隐式转成int,double类型,但是不能隐式转换成string;如果char类 型转成byte,short类型的时候,需要强转
10.一个java类包含的内容
属性、方法、内部类、构造方法、代码块
11.面向对象特征
封装、继承、多态
封装的好处:
i.减少耦合;
ii.方便的修改自己的实现代码,不用修改那些调用我们代码的程序片段。
封装:指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
继承:通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类,有的也成为基类,超类。减少代码重复、臃肿,提高代码可维护性
多态:一个对象在不同条件下表现出的不同形态
12.访问修饰符的区别?
类的成员不写访问修饰时默认为 default。默认对于同一个包中的其他类相当于公 开(public),对于不是同一个包中的其他类相当于私有(private)。受保护 (protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私 有。Java 中,外部类的修饰符只能是 public 或默认,类的成员(包括内部类)的 修饰符可以是以上四种
13.string是基本数据类型吗
不是。Java 中的基本数据类型只有 8 个:byte、short、int、long、float、double、 char、boolean;除了基本类型(primitive type), 剩下的都是引用类型(reference type),Java 5 以后引入的枚举类型也算是一种比较特殊的引用类型
14.重载和重写的区别
- 重写:在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的
- 重载:在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同) 则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载
15.equal与==的区别
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断
16.数组实例化有哪几种方式?
静态实例化:创建数组的时候已经指定数组中的元素
动态实例化:实例化数组的时候,只指定了数组程度,数组中所有元素都是数组类型的默认值
数组一旦实例化,它的长度就是固定的
17.java是值传递还是引用传递
理论上说,java都是引用传递,对于基本数据类型,传递是值的副本,而不是值本身。对于对象类型,传递是对象的引用,当在一个方法操作操作参数的时候,其实操作的是引用所指向的对象。