ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:103.62KB ,
资源ID:3999977      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3999977.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java基础知识问题解答.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java基础知识问题解答.docx

1、java基础知识问题解答Java基础知识的解答1.java为什么要使用继承(extends);(减少很多类的重复代码)因为在很多类中发现有很多类中重复的属性和行为,那么我们可以把重复的属性和行为放到一起形成一个新的类,然后很多类继承这个新的类,在很多类可以直接继承这个类的属性和行为。2:java中什么情况下使用继承(extends);如果发现很多类中存在is a的关系,那么就可以使用继承;很多类我们叫子类或者是派生类,新类叫做基类或者父类,或者超类(所有类的父类Object,自动继承,单继承)。3:谈谈你对java中继承中的理解(那些该继承,那些不该继承,那些):A.子类与父类在同一个包面,除

2、了private不能被继承,其余都可以被继承。其余:friendly,protected,public。B.在不同的包里面,只有protected和public可以被继承。公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。3. 保护继承(protected)保护继承的特点

3、是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。4.包(package)的使用规则:包只能写在第一行,包的含义就相当于文件夹,区分不同的类,同一个包中的类名不能相同,而在不同的包中,类名可以相同。5.java中的静态方法能被继承吗?结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为隐藏。如果你想要调用父

4、类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在隐藏的这种情况。 2). 多态之所以能够实现依赖于继承、接口和重写、重载(继承和重写最为关键)。有了继承和重写就可以实现父类的引用指向不同子类的对象。重写的功能是:重写后子类的优先级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。 3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象。非静态方法可以被继承和重写,因此可以实现多态。6.继承里面的super关键字A.如果子类继承父

5、类,在子类中怎么调用指定的构造方法:super(参数);且super(参数)是写在子类构造方法的第一行,如果子类构造方法中没有super那么就是默认super();B.如果在子类中一定要执行父类的某个构造方法,那么就super.Method(参数)C.先静态方法(静态代码块),后构造方法。在声明阶段时候:static就会被创建。7.重写(Override)的原则和原因:原则:A.同名,同参,同返回值,顺序和个数一致;B.接口的重写方法的修饰符只能大于或者等于父类的修饰符。C.子类重写的异常只能小于等于父类的异常。原因:如果发现父类的行为不能解决子类的问题,那么我们就重写父类的行为(覆盖父类的行

6、为)。8.重写(Override)与重载(Overload)的区别:A.重载在一个类中:同名,不同的参数个数或者类型。B.重写在继承关系中:同名,同参。9.四大修饰符合基本数据类型:private 它修饰的属性,方法都只能在本类中访问public 它修饰的,是所有类都可以访问缺省 它修饰的,只能在本包中访问protected 它修饰的只能在本包以及子类中访问修饰符 本类 本包 不同包的父子类 其他类 Private friendly Protected (子类) Public 基本数据类型:Boolean,byte(1),char(8),short(16),int(32),float(32),

7、double(64),long(64)(大小:-2的(次方)-12的(次方)10.类与类的关系(对象与对象的关系):一对多的关系;多对多的关系;一对一的关系(讨论:角色,用户,权限之间的关系);(重写toString可以输出所有的属性)11.类和对象的定义,关系与区别定义:类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属

8、性和对这组属性进行操作的一组服务组成。从更抽象的角 度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务 的封装体。客观世界是由对象和对象之间的联系组成的。关系:类与对象的关系就如模具和铸件的关系类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。区别:A.类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。B.对象是类的

9、一个具体。它是一个实实在在存在的东西。C.类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。D.对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。12.多态的定义,表现形式,作用,例子;定义:多态指同一个实体同时具有多种形式。表现形式:方法的多种表现形式:方法的多态(通过:重载与重写来完成);对象的多种表现形式:对象的多态(通过继承来完成,只有在运行是才能确定父类的引用具体指向哪一个对象)作用:提高代码灵活性,可以重用以及拓展(提高代码的可拓展性(兼容),可维护性)可拓展性:

10、当增加一个需求时候,我们不需要修改一个类中的方法。(就说功能强,兼容强,拓展好)例子:通过父类来达到兼容子类(public void judge(class c)class就是父类。只有在这个方法运行时候我们才可以知道judge的方法指向那个对象)13.封装的定义,表现形式,作用,例子;定义A.封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。B.封装把对象的所有组成部分组合在一起;封装定义程序如何引用对象的数据?封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。作用:A.对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的

11、可复用性和可维护性,降低了程序员保持数据与操作内容的负担。B.对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。14.控制反转控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。15.OOPXX百科,J2EEXX百科J2EE为搭建具有可伸缩

12、性、灵活性、易维护性的商务系统提供了良好的机制;16. Exception(异常)学习异常的原因,怎么处理异常(1.编译时异常,2,运行时异常);概念:(concept)就是java.lang.Exception(所有具体异常父类)这个类用于表示异常(异常不等于错误);java.lang.Throwable的子类和java.lang.Error都是Throwable的子类方法:(method)Exception() 构造详细消息为 null 的新异常。 Exception(String message) 构造带指定详细消息的新异常。 Exception(String message, Thro

13、wable cause) 构造带指定详细消息和原因的新异常。 Exception(Throwable cause) 常用的实例方法void printStackTrace() 将此 throwable 及其追踪输出至标准错误流(默认是在控制台输出)。String getMessage() 返回此 throwable 的详细原因。处理异常:try 写代码 catch(异常类 变量) 处理异常 .catch(异常类 变量) 处理异常 Finally不管发生还是不发生异常 finally 都会执行 (运行时候:System.exit(0)关闭进程)17. final和finally的区别,throw

14、与throws的区别final是定义常量的关键字,而finally是在异常中最终执行的关键字throw是抛出异常对象,写在方法里面的;throws是抛出异常类,写在方法头。为什么要使用throw,throws?throw,throws这2个关键字一起使用吗? 如果是写了throw, throw后面不是运行时异常carch(exception e)throw new RuntimeException() 那么throws一定要写;如果throw后面是运行时异常(throw new RuntimeException()那么throws可以不写; 反过来 如果写了throws 那么throw 可以不

15、写 ,但是在调用这个方法里面一定要处理。throws 我们一般用于判断方法体是否出现错误自定义异常 我们的异常 只有那么多 在开发中远远不够 所以我们可以自定义异常 做法 class MyException extends Exception或者Throwable 写4个构造方法 这4个构造方法 的参数分别与Exception或者Throwable一致 4个构造方法中我们就可以一行代码super(参数分别是构造方法的参数) 例子:public class MyException extends Exception public MyException() public MyException(

16、String message) super(message); public MyException(String message, Throwable cause) super(message,cause); public MyException(Throwable cause) super(cause); 18. 类图怎么画(类图XX百科)加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系

17、(Composition),依赖关系(Dependency)。19.UML(Unified Modeling Language)图(UMLXX百科)(说明:UML中的类图,建议采用office系列中的visio来画)20.E-R图(E-RXX百科)21.Sting exetends Object implements Serializable, Comparable, CharSequenceSerializable:序列化,便于在网络中传输和保存;Comparable:比较:这是让自定义类(class)的对象变成“可比较的”对象,能被排序、查找等各类工具比较使用。CharSequence:字

18、符序列:CharSequence与String都能用于定义字符串,但CharSequence的值是可读可写序列,而String的值是只读序列。22.API中的String定义:一对双引号里面的内容就是字符串;说明:字符串是一个特殊的对象(放在(类区)字符串池里面),字符串是常量,即:字符串一旦初始化就不可以改变。字符串是应用数据类型。字符串会在对象声明的时候被创建。本质:就是一个字符数组(CharSequence)。它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例子:(对象的实例化一般是放在堆里面)String str1=”abc”

19、; (产生一个对象,在字符串池:里面声明是创建了一个对象)int i=1; (基本数据类型:放在栈里面,不产生对象)String str2=new String(”abc”); (产生两个对象;“abc”就是一个常量在对象声明的时候就会放到(内区)字符串池里面,就创建了一个对象。New的话会在堆里面开辟一个内存空间,初始化的时候:就把abc放到里面来,又产生了一个对象。str2是指向堆里面的首地址)如果字符串池里面创建了一个对象,那么下面就可以直接用这个对象,不用创建了。23.String的构造方法(API),常用的方法String(bytebytes)String(bytebytes, Ch

20、arsetcharset)(Charset描述)(GB2312,GBK简体中文,GBK1830,BJG,UTF-8统一编码,ISO-8859-1拉丁系列)例子:byte b=;String s=new String(b,”GBK”);System.out.print(s);(不同的字节数组,用不同的编码格式,就会有不同的显示(解码))方法:字符串是一个特殊的对象,字符串不可以修改字符串常量保存在内存的字符串池中常用方法length 求数组的长度(s.length)charAt 在某个位置的字符(s.charAt(2)indexOf 求字符的下标(s.indexof(a)从左做到右)lastIn

21、dexOf 求字符的下标(s.lastIndexof(a)从右做到左)字符下标不会改变substring 求子字符串,就是求某一部分字符串 ;(s.substring(2))split() 分隔符号toCharArray()getBytes()s.replaceAll(“a”,”b”)s中的b替换a大小写转换(toUpperCase()字符串替换trim()(只能去掉前后的空格)Concat(“”)(把字符串连接起来)equals(比较字符是否相等)equalsIgnoreCase(不比较大小写)toLowerCase(转成小写)contains(包含返回true)startsWith(是不是

22、以什么前缀开始)endsWith (是不是以什么后缀结束)比较compareTo (按照字典的顺序)intern方法()返回字符串对象的规范化(得到池里面的数据)作业1:给定一个字符串数组。按照字典顺序进行从小到大的排序2:一个子串在整串中出现的次数3:两个字符串中最大相同的子串24.正则表达式:作用:(javascript用的比较多) 替换,比较,分割,查找,匹配等API中的正则表达式:字符,字符类,POSIX 字符类.;如:String s=”abc”; ”a”.matches(s) ; 匹配:a是否满足s这个正则表达式 “.repalceAll(s,s1) 替换: “”.split(s)

23、 分割:25.API中的StringBuffer(字符串的缓冲类)线程安全的可变字符序列。一个类似于 String 的字符串缓冲区;String与StringBuffer的区别:String是不可变的字符串,StringBuffer是可变的字符串;如果字符串常量数据不大,我们就使用String,字符串数据大的使用StringBuffer。例子:public static void pinjieString(Object obj) /构建一个可变字符串的 对象 可变字符串StringBuffer 对拼接字符串使用最多 StringBuffer sb=new StringBuffer(insert

24、 into ); /把任意类里面的类名 找出来 拼接到sb对应的字符串缓冲区的后面 Class clazz=obj.getClass(); String tableName=clazz.getSimpleName(); sb.append(tableName+ ( ); /把任意类里面的属性名 找出来 然后拼接到 sb对应的字符串缓冲区的后面 Field fs=clazz.getDeclaredFields(); for(Field f:fs) sb.append(f.getName()+,); sb.deleteCharAt(sb.lastIndexOf(,); sb.append( ) v

25、alues(); for(Field f:fs) sb.append(?,); sb.deleteCharAt(sb.lastIndexOf(,); sb.append( ); System.out.println(sb); 26.API中的StringBuilder(不安全的)一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。将 StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用 StringBuffer。27.了解和学习一个对象的步骤第一步:类的作用;第二步:看构造方法;第三步:看实例方法;第四步:网上搜索常用

26、的方法进行测试。28.进程与线程(进程的线程XX百科)进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的本单位,是操作系统结构的基础。基狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分

27、派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程;要做游戏可以学习:Thread 和Socket29.API中的System System 类包含一些有用的类字段和方法。它不能被实例化。 例子:A:可以表示标准输入流:System.in B:可以表示标准输出流:System.outC:可以的到系统的当前时间:System.currentTimeMillis();为单位D:强行关闭当前进程:System.exit();E:垃圾运行机制:System .gc();F:确定当前的系统属性: System .getProperties() ;Prope

28、rties ps=System.getProperties();String str=ps.getproperty(“key”);(key表示就是这个方法中你要得到的键名,str就是值)30.API中的Runtime每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。 应用程序不能创建自己的 Runtime 类实例。 意思:就是使用Runtime这个类,可以调用其他程序(对于没有单例和没有构造方法,我们就get一下、如:Rutime rt=Runtime.getRuime();其他我们可以new一下、

29、如:StringBuffer s=new StringBuffer();)例子:Rutime Rt=Runtime.getRuime();Try Peocess p=Rt.exec(“c:QQ.exe”) ; /在单独的进程中执行指定的字符串命令。P.destroy;/就是杀死子进程31.包装类概念:就是对基本数据类型进行包装的类 byte-Byte boolean-Boolean short-Short int-Integer float-Float double-Double char-Character long-Long 为什么要包装? 最大的作用 就是 进行类型转换;比如说 字符串转

30、换为各种类型,包装类.parseXXX(字符串)例子: /Integer.parseInt(abc);/java.lang.NumberFormatException /各种包装类 valueOf(各种基本类型 数据) /把基本类型转换为包装类 可以采用构造方法还可以采用valueof static void valueof() Integer i=Integer.valueOf(10);/把10变成包装类 包装是比如这个10,就从栈里面保存到了堆里面static String toBinaryString(各种基本类型 i) 以二进制无符号整数形式返回 各种基本类 参数的字符串表示形式。 static String toHexString(各种基本类型 i) 以十六进制无符号整数形式返回 各种基本类 参数的字符串表示形式。 static String toOctalString(各种基本类型 i) 以八进制无符号整数形式返回 各种基本类 参数的字符串表示形式如:String v=Integer.toBinaryString(123);System.out.p

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1