Java面试30天计划Day02(变量/数据类型/标识符关键字...)

简介: Java基本数据类型有哪些?注释哪几种?标识符与关键字区别?变量?break/contiune/return区别?字符型常量与字符串常量区别?局部变量与成员变量区别?

这是一个Java面试的集合文档,将会周期性的进行更新,您完全将其看成一个番剧,追番的感觉可能会让您更有学习的兴趣。

此篇为基础语法篇

Java的基本数据类型有哪些?

数据类型 boolean byte char short int float long double
占用内存 1(bit) 8(bit) 16(bit) 16(bit) 32(bit) 32(bit) 64(bit) 64(bit)
包装类 Boolean Byte Character Short Integer Long Float Double

(1字节=8bit),boolean只有两个值true和false,boolean占用1一个字节或4个字节皆有可能,具体看虚拟器是否符合规范。

注释有哪几种?

Java 中的注释有三种:

    1. 单行注释 :用于解释方法内某单行代码的作用。
    2. 多行注释 :用于解释一段代码的作用。
    3. 文档注释 :用于生成 Java 开发文档。

    标识符和关键字两者的区别是什么?

    Java对各种变量、方法、类等命名时所使用的字符序列即为标识符。简单的理解就是我们可以自己起名字的地方都是标识符,例如在程序中:int num1 =90;那么num1就是标识符。它只是一个名字。

    关键字即是被Java语言所赋予了特殊含义,用做专门用途的字符串。其实它就是被赋予了特殊含义的标识符。需要注意的是,关键字中所有的字母都为小写。

    我们可以这样理解这两者的区别:前置条件:生活中名字必唯一情况下,你有一个兄弟,你十分的喜欢他,你要给它起一个名字叫“阿卡丽”,名字就是我们的标识符。但是这个名字确是不被允许的,因为你的父亲也叫“阿卡丽”,你肯定不能和你父亲同名,那么此时“阿卡丽”已经被赋予了特殊的含义,也就是关键字。

    此处列出Java关键字表以供参考:

    用于的关键字 import package
    用于定义访问权限修饰符的关键字 private protected public
    用于定义数据类型的关键字 class interface enum byte short int
    long float double char boolean void
    用于定义数据类型值的关键字 true false null
    用于定义流程控制的关键字 if else switch case default while
    do for break continue return
    用于定义类、函数、变量修饰符的关键字 abstract final static synchronized
    用于定义类与类之间关系的关键字 extends implements
    用于定义建立实例及引用实例、判断实例的关键字 new this super instanceof
    用于异常处理的关键字 try catch finally throw throws
    其他修饰符关键字 native strictfp transient volatile assert

    注意:default是个特殊的关键字,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。虽然truefalsenull看起来像关键字但实际上他们是字面值,同时你也不可以作为标识符来使用。

    什么是变量?

    变量是程序的基本组成单位,变量有三个基本要素(数据类型+变量名称+值),变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。

    变量表示内存中的一个存储区域(不同变量,类型不同,占用的空间大小不同)。变量必须先声明,后使用,也就是需要有顺序。变量在同一作用域内不能重名。

    局部变量和成员变量与区别是什么?

      1. 语法形式:局部变量是在代码块或方法中定义的变量或是方法的参数,而成员变量属于类。  局部变量不可以被访问控制修饰符和static所修饰,而成员变量可以被privatepublicstatic等修饰符所修饰。  但两者都可以被final所修饰。
      2. 默认值:局部变量不会自动赋值。  如成员变量没被赋初始的值,则会自动以类型的默认值而赋值(例外:如成员变量被final修饰也必须显式的赋值)。
      3. 生存时间:局部变量会随着方法的调用而自动生成,也随着方法的调用结束而消亡。而成员变量则是对象的一份子,它会随着对象的创建而存在。
      4. 存储方式:局部变量存在于栈内存。成员变量如是使用static所修饰,则此成员变量属于类,如没有使用static所修饰,则此成员变量属于实例。而其对象存在于堆内存。

      静态变量的作用是什么?

      (static)静态变量可以被类的所有实例共享。无论一个类创建了多少个对象,它们都共享同一份静态变量。一般情况中,静态变量会被final关键字修饰成为常量。

      break、contiune、return三者的区别?

        1. break:(就近原则,结束当前的整个循环。指跳出整个循环体,继续执行循环下面的语句。)
          1. 结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。
          2. 只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。[逐层判断,逐步跳出]
          3. break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。
          4. 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
            1. contiune:(指跳出当前的这一次循环,继续下一次循环。)
              1. 终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
              2. 结束当前循环,进行下一次的循环判断。
              3. 终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行
                1. return:(用于跳出所在方法,结束该方法的运行。)
                  1. return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
                  2. .return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
                  3. return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。

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

                      1. 形式上: 字符常量是单引号引起的一个字符 字符串常量是双引号引起的 若干个字符
                      2. 含义上: 字符常量相当于一个整形值( ASCII 值),可以参加表达式运算,字符串常量代表一个地址值(该字符串在内存中存放位置)
                      3. 占内存大小:字符常量只占2个字节 字符串常量占若干个字节(至少一个 字符结束标志)

                      注意: char在Java中占两个字节

                      如果您认真阅读至此,您现在已经掌握了Java的面试篇追番版Day02,且随着您认真练习使用次数的增加,您对您对Java的掌握我相信不止于此,如果您对此语言或其他有进阶的要求,请移步至我的博客进行其余的修炼计划。

                      感谢您认真观看完毕此文章,如果此文章对您有帮助的话,还请您点赞收藏评论,这对我有很大的帮助。

                      相关文章
                      |
                      5天前
                      |
                      负载均衡 NoSQL 算法
                      一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
                      这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
                      一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
                      |
                      5天前
                      |
                      存储 NoSQL Java
                      一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
                      这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
                      一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
                      |
                      5天前
                      |
                      缓存 NoSQL Redis
                      一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
                      这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
                      |
                      5天前
                      |
                      存储 关系型数据库 MySQL
                      一天五道Java面试题----第八天(怎么处理慢查询--------->简述Myisam和innodb的区别)
                      这篇文章是关于Java面试中关于数据库性能优化和MySQL特性的五个问题,包括处理慢查询、ACID特性保证、MVCC概念、MySQL主从同步原理以及MyISAM和InnoDB存储引擎的区别。
                      |
                      4天前
                      |
                      NoSQL Java 数据库
                      2022年整理最详细的java面试题、掌握这一套八股文、面试基础不成问题[吐血整理、纯手撸]
                      这篇文章是一份详尽的Java面试题总结,涵盖了从面向对象基础到分布式系统设计的多个知识点,适合用来准备Java技术面试。
                      |
                      4天前
                      |
                      算法 关系型数据库 MySQL
                      一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)
                      这篇文章是关于MySQL的面试题总结,包括索引结构的优劣、索引设计原则、MySQL锁的类型、执行计划的解读以及事务的基本特性和隔离级别。
                      |
                      5天前
                      |
                      自然语言处理 NoSQL Java
                      一天一道Java面试题----第十二天(如何实现接口幂等性)
                      这篇文章探讨了实现Java接口幂等性的几种方法,包括使用唯一ID、服务端token、去重表、版本控制以及控制状态等策略。
                      |
                      3天前
                      |
                      存储 缓存 网络协议
                      复盘女朋友面试4个月的Java基础题
                      这篇文章是关于Java基础面试题的复盘,涵盖了HashMap原理、对象序列化作用等高频面试问题,并强调了Java基础知识的重要性。
                      复盘女朋友面试4个月的Java基础题
                      |
                      28天前
                      |
                      SQL Java Unix
                      Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
                      在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
                      31 3
                      |
                      1月前
                      |
                      存储 算法 Java
                      Java面试之SpringCloud篇
                      Java面试之SpringCloud篇
                      67 1