尚硅谷_宋红康_参悟Java基础核心技术-精选文档
- 格式:pptx
- 大小:2.30 MB
- 文档页数:65
题目:115个Java面试题和答案——终极(上)本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java 和通用的面向对象编程的能力。
下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。
目录面向对象编程(OOP)常见的Java问题Java线程Java集合类垃圾收集器面向对象编程(OOP)Java是一个支持并发、基于类和面向对象的计算机编程语言。
下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。
代码复用。
增强代码的可靠性和灵活性。
增加代码的可理解性。
面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。
下面的章节我们会逐个分析这些特性。
封装封装给对象提供了隐藏内部特性和行为的能力。
对象提供一些能被其他对象访问的方法来改变它内部的数据。
在Java当中,有3种修饰符:public,private和protected。
每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。
下面列出了使用封装的一些好处:通过隐藏对象的属性来保护对象内部的状态。
提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。
禁止对象之间的不良交互提高模块化。
参考这个文档获取更多关于封装的细节和示例。
多态多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。
一个多态类型上的操作可以应用到其他类型的值上面。
继承继承给对象提供了从基类获取字段和方法的能力。
继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。
抽象抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。
Java支持创建只暴漏接口而不包含方法实现的抽象的类。
—————————————————————————————题目:Java 之23种设计模式解析一、设计模式概述总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
具体如下:其中创建型有:一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。
四、Builder,建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
五、Prototype,原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。
行为型有:六、Iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。
七、Observer,观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。
八、Template Method,模板方法:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。
九、Command,命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。
题目:115个Java面试题和答案——终极(下)第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。
异常处理Java小应用程序(Applet)SwingJDBC远程方法调用(RMI)ServletJSP异常处理43.Java中的两种异常类型是什么?他们有什么区别?Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。
不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。
相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。
这里有Java异常处理的一些小建议。
44.Java中Exception和Error有什么区别?Exception和Error都是Throwable的子类。
Exception用于用户程序可以捕获的异常情况。
Error 定义了不期望被用户程序捕获的异常。
45.1 throw和throws有什么区别?throw关键字用来在程序中明确的抛出异常,相反,throws语句用来表明方法不能处理的异常。
每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
45.2 异常处理的时候,finally代码块的重要性是什么?无论是否抛出异常,finally代码块总是会被执行。
就算是没有catch语句同时又抛出异常的情况下,finally代码块仍然会被执行。
最后要说的是,finally代码块主要用来释放资源,比如:I/O缓冲区,数据库连接。
46.异常处理完成以后,Exception对象会发生什么变化?Exception对象会在下一个垃圾回收过程中被回收掉。
java核心技术-基础知识篇一:手机软件开发入门手机软件开发入门1手机软件的运行环境1.1概述手机可以被看作袖珍的计算机。
它有CPU、存储器(flah、RAM)、输入输出设备(键盘、显示屏、USB、串口)。
它还有一个更重要的I/O通道,那就是空中接口。
手机通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。
手机的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,称作CPU核。
基带处理芯片是手机的核心,它不仅包含CPU核、DSP核这些比较通用的单元,还包含通信协议处理单元。
通信协议处理单元和手机协议软件一起完成空中接口要求的通信功能。
随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。
这样手机才可能越做越小、越做成本越低。
1.2单CPU和双CPU很多手机只有一个CPU,也就是基带处理芯片中的CPU核。
在这个CPU上既要跑通信协议,又要实现用户界面(UI)。
DSP会分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。
在市场推动下,手机功能在不断发展。
摄像头、MP3、蓝牙这些功能可以依靠硬件,对CPU的压力还不是很大,但java虚拟机、嵌入式浏览器等应用软件就会对CPU资源有较高的要求。
单CPU的首要任务是完成通信协议。
通信协议软件有着精确的定时要求,如果这个CPU还要兼顾很多应用软件的话,就难免吃力。
于是双CPU手机应运而生。
顾名思义,双CPU手机就是有两个CPU的手机,一个CPU专心把通信协议做好,另一个CPU负责UI、java虚拟机、嵌入式浏览器等应用。
两个CPU可以做在一个芯片里面,也可以分开。
市场上的实际情况是,很多手机设计公司(DeignHoue)没有基带处理芯片的开发能力,他们购买国外公司的手机模块,在外面再加一块CPU。
模块跑通信协议,自己加的CPU跑UI和应用软件,两者通过串行口通信。
尚硅谷入学测试套题A范本一、Java基础1.什么是Java?简要描述Java语言的特点和优势。
Java是一种跨平台的高级编程语言,具有简单、面向对象、健壮、安全等特点。
Java的优势在于其跨平台性,可以在不同操作系统上运行,且具有广泛的应用领域。
2.简述Java中的封装性,并给出一个示例。
封装性指的是将数据和处理数据的方法封装在一个类中,并通过访问修饰符进行访问控制。
示例:```javapublic class Student{private String name;private int age;public String getName(){return name;}public void setName(String name){ = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}}```3.什么是Java的继承?给出一个继承的示例,并解释其中的关键字和概念。
Java的继承是指一个类通过继承另一个类的属性和方法,实现代码复用和扩展的机制。
示例:```javapublic class Animal{protected String name;public void eat(){System.out.println(name + " is eating");}}public class Dog extends Animal{public Dog(String name){ = name;}public void bark(){System.out.println(name + " is barking");}}public class Main{public static void main(String[] args){Dog dog = new Dog("Tommy");dog.eat(); // 输出:Tommy is eatingdog.bark(); // 输出:Tommy is barking}}```在上述示例中,关键字"class Dog extends Animal"表示Dog类继承自Animal类,子类可以使用父类的属性和方法。