分类:Java

Java并行流之老生常谈

Stream API是Java 8推出的新特性,眼看Java 9 (2017年7月份) 即将推出,为什么还来谈Stream呢?毕竟自从Java 8推出以来,关于流的具体使用的文章相当之多,因此本文也不打算重复描述Stream的使用方法,而是想谈谈很少被提及的一些基本问题。

1.Java 8引入lambda语法的设计初衷是什么?是为了解决Java语言为人诟病的语法繁琐问题吗?

Read More.

Java容器类

这篇文章看起来有些弱智,奈何zz阿里面试官就是喜欢考,一怒之下就背了一把

1.Java容器类有哪些?

Java的容器主要有两种,一种是Collection及其子类,一种是Map及其子类。其中Collection十分复杂,其本身还有好多子类接口。如下
1.Collection

是独立元素的序列,包含三个主要子接口

  1. List 有序
  2. Set 无序去重
  3. Queue 有序,可以先进先出

2.Map

是键值对。

2.各种容器类的接口分别是怎样的? Read More.

final关键字的使用

题记:

起这个标题时,我想到,作为一个三四年经验的Java程序员,这个话题未免显得有些基础。这么想,是因为我一直不认为应该把博客当成书本知识点(或者说语言文档)的复述者,然而 Read More.

Java继承容易掉进的坑

1.覆盖私有方法会怎样

私有方法对子类不可见,因此并没有覆盖私有方法一说,当然,如果你强行写一个签名相同的方法在子类里,假装在覆盖私有方法——并不会起到覆盖的作用,编译不会报错,而是会将他作为子类的方法。

譬如以下的例子: Read More.

Java条件运算符的类型

当初学Java时听说过三目运算符,偶尔用到,也没在意,直到后来看到某到题目(文中第五段代码)懵逼了,于是看了下题解,自己又码了些代码测试以为自己懂了,直到后来又遇到某情况(文中有,读者自己找)又懵逼了,才发现条件运算符不是那么单纯。

三目操作符的基本功能

条件运算符(?:)是Java中唯一的三目运算符。因此对于Java提到三目操作符,均指条件运算符。条件运算符可以用来进行代替 if else 语句来简化条件分支跳转。例如以下一段常见的代码:

boolean b = true;//boolean b = false;
int a;
if(b) 
  a = 1; 
else 
  a = 2;

就可以用条件运算符简化为:

boolean b = true;//boolean b = false;
int a = b ? 1 : 2;

以上两段代码的意思都是:当布尔变量b是真时,a将赋值为1,b为false时,a将赋值为2。

所以条件运算符的一个基本用法是:

布尔变量a ? 表达式b : 表达式c; //(true)?1:2;

值得一提的是,b,c都不允许是void类型。

操作符两侧类型不同将会怎样

上面两段代码中,变量a和变量b都是int类型,所以没什么问题。那如果是不同类型会怎么样呢?
Read More.

面向对象的理解问答

1.面向对象(OOP)语言的特征是什么?
  1. 万物皆对象
  2. 程序是对象的集合,通过发送消息告诉彼此所需要做的
  3. 每个对象都拥有其类型
  4. 某一特定类型的所有对象都可以接收同样的消息
2.面向对象的出发点?

Read More.