1. Java 语法

1.1. 字符型常量和字符串常量的区别?

1. 形式上: 字符常量是单引号引起的一个字符; 字符串常量是双引号引起的若干个字符

2. 含义上: 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)

3. 占内存大小 字符常量只占 2 个字节; 字符串常量占若干个字节 (注意: char 在 Java 中占两个字节)

1.1.2. 关于注释?

Java 中的注释有三种:

1. 单行注释

2. 多行注释

3. 文档注释。

在我们编写代码的时候,如果代码量比较少,我们自己或者团队其他成员还可以很轻易地看懂代码,但 是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会执行,是我们程序员写给自己看的, 注释是你的代码说明书,能够帮助看代码的人快速地理清代码之间的逻辑关系。因此,在写程序的时候 随手加上注释是一个非常好的习惯。

《Clean Code》这本书明确指出:

1.1.3. 标识符和关键字的区别是什么?

在我们编写程序的时候,需要大量地为程序、类、变量、方法等取名字,于是就有了标识符,简单来说,标识符就是一个名字。但是有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这种特殊的标识符就是关键字。因此,关键字是被赋予特殊含义的标识符。比如,在我们的日常生活中 “警察局”这个名字已经被赋予了特殊的含义,所以如果你开一家店,店的名字不能叫“警察局”, “警察局”就是我们日常生活中的关键字。

1.1.4. Java中有哪些常见的关键字?

1.1.5. 自增自减运算符

在写代码的过程中,常见的一种情况是需要某个整数类型变量增加 1 或减少 1,Java 提供了一种特殊的运算符,用于这种表达式,叫做自增运算符(++)和自减运算符(--)。

++和--运算符可以放在操作数之前,也可以放在操作数之后,当运算符放在操作数之前时,先自增/减, 再赋值;当运算符放在操作数之后时,先赋值,再自增/减。例如,当“b=++a”时,先自增(自己增加1),再赋值(赋值给 b);当“b=a++”时,先赋值(赋值给 b),再自增(自己增加 1)。也就是,++a 输出的是 a+1 的值,a++输出的是 a 值。用一句口诀就是:“符号在前就先加/减,符号在后就后加/减”。

1.1.6. continue、break、和return的区别是什么?

在循环结构中,当循环条件不满足或者循环次数达到要求时,循环会正常结束。但是,有时候可能需要 在循环的过程中,当发生了某种条件之后 ,提前终止循环,这就需要用到下面几个关键词:

1. continue :指跳出当前的这一次循环,继续下一次循环。

2. break :指跳出整个循环体,继续执行循环下面的语句。

return 用于跳出所在方法,结束该方法的运行。return 一般有两种用法:

1. return; :直接使用 return 结束方法执行,用于没有返回值函数的方法

2. return value; :return 一个特定值,用于有返回值函数的方法

1.1.7. Java泛型了解么?什么是类型擦除?介绍一下常用的通配符?

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为 一个参数。

Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型擦除 。

泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。

1. 泛型类

如何实例化泛型类:

2. 泛型接口 :

实现泛型接口,不指定类型:

实现泛型接口,指定类型:

3. 泛型方法 :

使用:

常用的通配符为: T,E,K,V,?

1.1.8. ==和equals的区别

Object 类equals() 方法:

举个例子:

String 类equals() 方法:

1.1.9. hashCode()与 equals()

面试官可能会问你:“你重写过hashCode和equals,为什么重写equals时必须重写hashCode方法?”

1) hashCode()介绍:

散列表存储的是键值对(key-value),它的特点是:能根据“键”快速地检索出对应的“值”。这其中就利用 到了散列码!(可以快速找到所需要的对象)

2) 为什么要有 hashCode?

我们以“ HashSet 如何检查重复”为例子来说明为什么要有 hashCode?

当你把对象加入 HashSet 时, HashSet 会先计算对象的 hashcode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashcode 值作比较,如果没有相符的 hashcode, HashSet 会假设对象没有重复出现。但是如果发现有相同 hashcode 值的对象,这时会调用 equals()方法来检查hashcode 相等的对象是否真的相同。如果两者相同, HashSet 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。(摘自我的 Java 启蒙书《Head fist java》第二版)。这样我们就大大减少了 equals 的次数,相应就大大提高了执行速度。

3)为什么重写equals 时必须重写hashcode 方法?

4) 为什么两个对象有相同的 hashcode 值,它们也不一定是相等的?

Java语法(全面解析)相关推荐

  1. java day36【XML概念 、语法 、解析】

    第一章  XML 1. 概念:Extensible Markup Language 可扩展标记语言 * 可扩展:标签都是自定义的. <user> <student> * 功能 ...

  2. java定义语法解析器,java开发工具intellij idea使用教程:定义语法和解析器.pdf

    java开发工具intellij idea使用教程:定义语法和解析器.pdf 还剩 3页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 慧都 科技 -- ...

  3. java与JSON语法及解析

    JSON 简介: JSON全称是JavaScript Object Notation,js对象简谱. JSON是一种 轻量级.基于文本的数据交换格式. JSON十分便于阅读和书写,相比XML,文件更小 ...

  4. Java爬取解析去哪儿景点信息

    前言:这两周在做 Web 课的大作业,顺便琢磨了一下如何使用 Java 从网上获取一些数据,现在写这篇博客记录一下. PS:这里仅限交流学习用,如利用代码进行恶意攻击他网站,和作者无关!!! Java ...

  5. 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用...

    在线演示  本地下载 如果你曾经开发过内容聚合类网站的话,使用程序动态整合来自不同页面或者网站内容的功能肯定对于你来说非常熟悉.通常使用java的话,我们都会使用到一些HTML的解析,例如,httpp ...

  6. Java语法基础-1

    1. 关键字 1.1 关键字概述 被Java语言赋予特定含义的单词 1.2 关键字特点 组成关键字的字母全部小写 1.3 关键字注意事项 goto和const作为保留字存在,目前并不使用 类似Note ...

  7. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  8. Java 面试知识点解析(六)——数据库篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  9. Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?

    Java语法变化 Java5(2004): 枚举.泛型.注解.封箱(解箱)- Java6(2006): @Override接口 Java7(2011): Diamond语法.多Catch.Try- J ...

最新文章

  1. 使用Windows Live Writer发布日志
  2. I2C总线及AT24C02读写实验报告
  3. oracle取消dataguard,【DataGuard】Oracle DataGuard 数据保护模式切换
  4. android 中开启线程的方法,android中开启的循环线程
  5. java ftp上传超时_有关java的ftp上传文件时断网的问题
  6. UVA 11549 Calculator Conundrum
  7. VMware NAT模式设置静态IP(可上网)
  8. LeetCode第一题两数之和---JavaScript
  9. Winform 分页用户自定义控件( ML.Pager.WinControl)
  10. ZOJ3953 Intervals
  11. Python3.2-re模块之常用正则记录
  12. JDY-24M级蓝牙简介
  13. html中图片为什么反了,HTML5 canvas如何实现图片反色
  14. tp6 验证码不显示问题
  15. 红帽6.2 DOS无盘 NetWare 制作
  16. windows server 2012 重启后进入dos cmd
  17. 中科大自主招生2018年笔试数学
  18. 《Adaptive Unfolding Total Variation Network for Low-Light Image Enhancement》2021ICCV 弱光增强
  19. 基于Serverless的流量隐匿(四个方面)
  20. html字大小自适应,html字体大小自适应 怎样让HTML字体自适应到移动端?

热门文章

  1. 1102: 火车票退票费计算(函数专题)Python
  2. python数字转换_python数字转换为字符串的两种方式
  3. [ZZ] SAP 标准教材和自学方法
  4. Problem M 单数变复数
  5. ShardingSphere介绍
  6. NX/UG二次开发-其他-NX标题显示工作部件路径
  7. opencv处理图像开始注意的几点
  8. mysql 分区表 限制_MySQL分区表的局限和限制-阿里云开发者社区
  9. 求a和b的最大公约数
  10. Shell小干货学到就不亏