1: java  单根继承的优点?

方便垃圾回收: 垃圾回收的设计会方便实现。

     多重继承的函数重名的问题。

2: 向下转型和向上转型?

      向下转型不安全,向上转型安全。

3: system.gc() ?

     只是提醒JVM做垃圾处理。不保证一定做。

4:ArrayList  VS  LinkedList?

5: java 基本类型大小? 对应的包装类用处?

boolean(没有明确指定)    char(2)  byte(1)   short(2)   int(4)    long(8)  float(4)  double(8) : 每个基本类型都有对应的包装类。

包装类用处:

      作为和基本数据类型对应的类类型存在,方便涉及到对象的操作;

      包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法;

基本数据类型

包装类

byte

Byte

boolean

Boolean

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double

6: JAVA堆和栈?

一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因

在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。

(1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中

(2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的。

二:在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。

同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量

(1)当声明的是基本类型的变量其变量名及其值放在堆内存中的

(2)引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆中

7: 将字符串“12”转成16进制数?

 int a = Integer.parseInt("12", 16) ;

8:  整数转String?

  String a1 = Integer.toString(5); // 其他类型都可以转String
  String a2 = String.valueOf(5);   // String本身也有函数可以把其他类型转string

9:在精度要求高的计算中用浮点数?

  浮点数值不适合用于禁止出现舍入误差的金融计算中。例如System.out.println( 2.0 - 1.1);将打印0.899999999999999,而不是0.9。因为浮点数值采用二进制系统表示,而二进制无法精确表示分数1/10,就像十进制无法精确表示1/3一样。如果需要在数值计算中不含有舍入误差,就应该使用BigDecimal类和BigInteger。

  BigDecimal类:   支持任何精度的定点数。

  BigInteger类:支持任何精度的整数。

10: 当float, double转int时,都是截尾操作,如果想四舍五入,用java.lang.Math.round(5.8)方法

int a3 = (int) java.lang.Math.round(5.8);   // 6 

11:数据提升: 

  如果对基本数据类型执行算术运算货按位运算,只要类型比INT 小(char,byte,short),在运算前,会自动转成int.。如果想把结果转成较小类型,必须使用类型转换。通常运算中最大的类型决定了结果的类型。

12:switch的类型?

   int , char,    enum,  String

13:   类的惊天数据成员的初始化?

静态成员只被初始化一次; 当首次生成这个类的实例或首次访问类的静态成员时;先初始化静态的,然后是非静态的             

14: 子类如何调用父类构造函数?

super(x)   

15: @override注解的作用?

   想在子类中覆写某个函数,添加这个注解,在不小心重载的时候,编译器会提示错误。

16:final用法?

当修饰引用时,表示永远指向这个引用,但是指向的对象可以变化。

 final List<String >  list = new ArrayList<String>();
list.add("afa"); // 正确
list = new LinkedList<String>(); // 错误

  final Person p1 = new Person(a2, a);
  p1.setAge(5);  // 正确

  final String s= "fsdf";
  s = "fsdfsdfsdfdsf";  // 错误, 因为String是不可变对象,重新赋值导致new了新对象,与final冲突。

    final 可以是空白的,在构造函数的时候进行初始化。

  当修饰函数参数的时候,无法更改参数引用指向的对象(可以改变对象的值,但是不能重新指向其他的对象)。

  final方法:防止继承。

类中所有的private 方法都隐式的指定为final。

final类:不能有子类(不能被继承)

17:抽象类特性?

抽象类可以没有抽象方法;    抽象方法没有函数体,子类必须实现,如果不实现,子类也是抽象类;     抽象类不能实例化;

18:  接口中属性?

    接口中如果定义属性是static final的,所以一般不定义属性;

19: 接口中的方法是public的,默认是public的; 实现接口的类的函数是public的。

20: 抽象列和接口都是为了实现多态,向上转型,解耦合。

JAVA 编程思想二的更多相关文章

  1. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

  2. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

  3. 《Java编程思想》读书笔记(二)

    三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...

  4. JAVA编程思想读书笔记(二)--容器

    接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...

  5. 注解的基本盘点 -- 《Java编程思想》

    注解(元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在之后的某一个时刻非常方便地使用这些数据. ---<Java编程思想> 其实注解可以理解为一个工具类,只要使用了这个工 ...

  6. Java编程思想读书笔记之内部类

    现在是够懒得了,放假的时候就想把这篇笔记写出来,一直拖到现在,最近在读<Java编程思想>,我想会做不止这一篇笔记,因为之前面试的时候总会问道一些内部类的问题,那这本书的笔记就从内部类开始 ...

  7. Java编程思想学习(八) 内部类

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类的定义是简单的,但是它的语法确实很是复杂,让人不是很好理解.下面就内部类做一个小结. 一.内部类的分类 总的来讲内部类分为普通内部类,匿 ...

  8. Java编程思想(11~17)

    [注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...

  9. 《java编程思想》--多线程基础--Runnable

    一.简单说下Runnable是什么 1.它是一个接口 2.只提供了run方法 3.这个接口提供了一个协议:实现这个接口的类是active的(不必成为Thread的子类) 4.run方法没有返回值 /* ...

随机推荐

  1. Selenium3 Python3 Web自动化测试从基础到项目实战之一启动不同的浏览器及配置

    在web自动化中目前selenium作为底层的自动化测试是目前运用最广的,但是各个公司都会在这个基础之上进行修改.从今天开始我们就慢慢从low代码一步一步的学习框架知识. 首先当我们测试环境有了之后我 ...

  2. Linux 文件系统IO性能优化

    对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等系统的优化变得至关重要,这里转载一篇非常不错的关于IO优化的文章,供大家参考和学习: 一.关于页面缓存的信息,可以用 ...

  3. 【BZOJ1835】[ZJOI2010]base 基站选址 线段树+DP

    [BZOJ1835][ZJOI2010]base 基站选址 Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯 ...

  4. 对EasyDarwin开源项目后续发展的思考:站在巨人的肩膀上再跳上另一个更高的肩膀

    2017 EasyDarwin现状 自从2012年EasyDarwin项目创立开始,经过了快5年了,时光飞逝,如今EasyDarwin已经发展成为了不仅仅是一个单纯的开源流媒体服务器项目了,已经是各种 ...

  5. iOS与H5交互及UIWebView缓存

    iOS原生App与H5页面交互笔记 最近在做一个项目用到了原生App与H5交互,之前有做过简单的H5页面直接调用原生方法的例子,就是利用UIWebView中的代理方法 //webview每次加载之前都 ...

  6. 该 Bucket 已存在,或被其他用户占用

  7. cocos2d-js添加百度MSSP插屏(通过jsb反射机制)

    1.导入jar包.... 2.修改AndroidManifest.xml文件 添加: <meta-data android:name="BaiduMobAd_APP_ID" ...

  8. var foo = "11"+2+"1"; console.log(foo); //1121 好多文章答案写错了,我发下给初学的朋友看到,以免一开始就学错了

    体会加一个字符串'1' 和 减去一个字符串'1'的不同 var foo = "11"+2-"1"; console.log(foo); //111 consol ...

  9. git 从远端拉取指定分支和推送本地某个分支到远端

    如题,可以直接从远端拉取某个分支,也可以直接将本地某个分支推送到远端. 原文链接:https://www.cnblogs.com/hamsterPP/p/6810831.html

  10. web 全栈 学习 2 一个好的页面是如何炼成的

    第一章:Web页面内容的构成2.Web内容的分工一个Web页面可能的构成(视觉上看):①文字.链接.标题②交互入口(表单元素)③图片(哪些类型)④动画 Flash动画 HTML5 CSS3 动画⑤音视 ...