java编程语言基础知识点(1)

 第1章  Java程序设计概述

1) 开发Java语言的公司?  

Sun (Sun Microsystems)太阳微电子公司开发   

2) Java的3个版本?  

J2SE(Java2 Standard Edition) 标准版  主要用于开发桌面应用程序

J2EE(Java 2 Platform,Enterprise Edition) 企业版 提供了企业级应用开发的完整解决方案

J2ME(Java 2 Micro Edition) 微小版  主要用于开发桌面应用程序

在5.0以后新版本中称作:JavaSE JavaEE JavaME

3) Java语言的几个主要特点?  

平台性:能运行于不同的平台上  

安全性:去掉了指针操作,内存由操作系统分配 

面向对象:利用类使程序更加利于维护  

分布式:可以使用网络文件和使用本机文件一样容易 

健壮性:检查程序编译和运行的错误  

多线程并行执行多个任务,交互式响应性能较好, 并有实时特性,避免了资源冲突

4) Java的三大核心机制  

虚拟机机制:利用虚拟机解释字节码执行java程序实现跨平台 

垃圾收集机制:自动内存回收  

代码安全性机制:加载代码后校验代码后再执行代码


第2章  Java程序的基本结构
1) Java中有几种注释,各自的功能  
有三种:  单行注释//:加在行首只能注释一行  
多行注释/* */:注释多行,但不能嵌套使用  
文档注释/**  */:用于生成HTML形式的文档,需要配合javadoc命令实现
2) Java语言中数据类型的划分?有什么区别?
分成基本类型和引用类型两大类。 
基本类型:有8种,只能存储单一的值,不以对象的形式存在  
引用类型:除了基本类型之外其他的都是引用类型,能够存储复杂数据类型,以对象的形式存在
3) 基本类型都有哪8种类型? 
布尔类型:boolean 占1字节字符类型:char 占2字节  
整型:byte 占1字节short 占2字节 int 占4字节 long 占8字节 
浮点型:float 占4字节  double 占8字节   
4)  常见的转义字符有哪些?
转义序列 名称
\b 退格
\t 制表
\n 换行
\r 回车
\'' 双引号
\' 单引号
\\ 反斜杠
5) 标识符有什么命名规则? 
1. 应以字母、下划线、美元符号开头 
2. 后跟字母、下划线、美元符号或数字 
3. 不能用关键字和保留字 
4. 严格区分大小写 
5. 名称长度没有限制
6) 单目运算符,双目运算符,三目运算符都是什么意思?  
其实也有叫一元运算符,双元操作符,三元操作符的,指的是有几个操作数形成一个完整表达式,例如++就是一个单目运算符,只需要一个操作数就可以形成表达式,像i++,而+运算符就是双目运算符,需要两个操作数形成表达式,例如5 + 3,还有三目运算符,例如5 > 3 ? 0 : -1
7) ++和--放在前面和放在后面有什么区别?  
如果是在一个表达式中,那++放后面表示先运算表达式,然后再进行自增运算,如果在一个表达式中,++放前面,则表示先进行自增运算然后在运算表达式。
  例如:  int i = 10;    
       int j = i ++; //先进行赋值运算然后再进行自增运算   
       j的结果是10 
    
       int i = 10;    int j = ++ i  //先进行自增运算然后再进行赋值运算
       j的结果是11
8) 原码,反码,补码分别是什么意思?   
原码:将数字转换为二进制,第一位为符号位,正数为0,负数为1 
  例如:12的原码是00001100 -12的原码是10001100   
反码:正数的反码和原码相同,负数的反码将原码符号位之外的位逐位取反 
  例如:12的反码是00001100 -12的反码是11110011   
补码:正数的补码和原码相同,负数的补码将反码加1 
  例如:12的补码是00001100 -12的补码是11110100 
最后强调一点,计算机存储数据用补码形式来存储。
9) 数据类型转换需要遵循什么原则?  
小类型向大类型转换,是自动转换的,或者说隐式转换的 
大类型向小类型转换,是需要强制转换的,或者说显式转换  
例如:  byte b = 1;  
     short s = b;//自动转换   
     b = (byte) s;//强制转换
10) 对于退出循环break和continue有什么区别?  
break是退出整个循环  
continue是退出当前循环继续下一次循环

第3章  对象和类
1) OOP是什么意思? 
 Object Oriented Programming(面向对象编程)   
2) 类和对象的区别?  
类:对象的类型,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义 
对象:对象是实际存在的该类事物的每个个体,因而也称为实例   
类是对象的类型,对象是类的实例
3) 类之间的3种关系?  
依赖关系(uses-a) 聚集关系(has-a) 继承关系(is-a)
4) 构造方法和普通方法的区别? 
构造方法没有返回值,方法名必须和类名相同,需要用new语句调用构造方法
5) 实例成员和静态成员的区别?  
实例成员:是属于对象实例的,用对象.成员名称语法调用  
静态成员:和对象实例无关,是属于类本身的,用类名.成员名称语法调用
6)  局部变量和全局变量的区别?

区别 局部变量 全局变量
声明位置 方法或块内部 方法外类内部
访问权限修饰符 没有访问权限 有访问权限
默认值 没有默认值 有默认值
使用形式 直接使用 对象调用
作用域 在方法或语句块内部 整个类
生命周期 进入方法或语句快,创建退出语句块或方法销毁 随着对象的创建而创建


第4章  继承和多态
1) 类的继承是谁继承谁?  
是子类继承了父类,子类也称为派生类,父类也称为超类或基类
2) 私有成员能被子类继承吗?  
能继承,但是由于访问权限的控制,在子类中不能直接使用父类的私有成员
3) java中是单继承还是多继承?  
是单继承,一个子类只能有一个父类
4) 访问权限修饰符有几种,访问的范围又是多大?  
有四种:  private:私用 只能在被类中被访问  
default:默认 只能被同一个包中的类访问  
protected:受保护的 只能被同一个包中的类和不同包中的子类访问 
public:公有 可以被任何类访问
5) 覆盖方法的规则有哪些?  
子类覆盖方法和父类被覆盖方法的方法返回类型,方法名称,参数列表必须相同 
子类覆盖方法的访问权限必须大于等于父类的方法的访问权限 
方法覆盖只能存在于子类和父类之间  
子类覆盖方法不能比父类被覆盖方法抛出更多异常
6) this和super是作什么用处的?  
this:本身代表当前的对象引用,可以用this.成员名称调用当前对象的属性和方法,如果属性和局部变量重名,可以用this.属性名和局部变量区分开。也可以用this()语法调用本类重载构造器。 
super:本事是一个特殊关键字,可以用super.成员名称调用从父类继承的属性和方法,也可以用super()语法调用父类构造器。
7) 多态对象有什么特点?  
多态对象只能使用父类的成员,但如果多态对象使用了被子类覆盖的方法,则会动态绑定使用子类的成员,称为虚拟方法调用   
8) 引用类型之间的类型转换需要遵循哪些规则?  
自动转换:从子类到父类的类型可以自动转换 
强制转换:从父类到子类的类型要强制转换 
无继承关系的类型转换是非法的  
9) instanceof操作符是作什么用处的?  
可以判断一个对象的类型是否是某一个类的类型或子类,也可以判断这个对象的类型是否是一个接口的实现
10) 覆盖equals方法和hashCode方法有什么规则?  
必须保证当两个对象equals比较为true的时候,返回的hashCode相同,当比较为false的时候,返回的hashCode不同
11) abstract不能和哪些修饰符配合使用?  
不能和private,static,final一起使用



你可能感兴趣的:(语言基础知识点)