《面试系列篇》——Java这些最基础的知识,你还记得多少?
目录
【一】前言
【二】基础数据类型
【三】修饰符
【四】集合
【五】总结
【一】前言
作为一名CS本专业的程序员来说,大学学过的计算机课程,如:编程语言基本语法、数据结构、算法、计算机网络、计算机组成原理、数据库、汇编都是计算机系统里面的内容和知识。参加工作以后,这些内容真正能用得上也就是常用的那几项,如汇编这种工作中根本或几乎用不上。回过头来想想,这些最基本的知识,我们还记得多少呢?
【二】基础数据类型
Java SE里面的知识介绍了java最基础的8种数据类型,这8种细分的数据类型,可以分为4大类,分别是:
第一类:逻辑(布尔)型boolean
类型 |
占用存储空间 |
字节数 |
值举例 |
boolean |
1字节 |
8位 |
true/flase |
第二类:文本(字符)型char
类型 |
占用存储空间 |
字节数 |
值举例 |
char |
2字节 |
16位 |
‘c’ |
第三类:整数型(byte、short、int、long)
类型 |
占用存储空间 |
字节数 |
值举例 |
范围 |
byte(位) |
1字节 |
8位 |
‘c’ |
-128~127 |
short(短整数) |
2字节 |
16位 |
10 |
-2^15~2^15-1 |
int(整数) |
4字节 |
32位 |
10 |
-2^31~2^31-1 |
long(长整数) |
8字节 |
64位 |
10l |
-2^63~2^63-1 |
第四类:浮点型(float、double)
类型 |
占用存储空间 |
字节数 |
值举例 |
范围 |
float(单精度) |
4字节 |
32位 |
10.0f |
-2^31~2^31-1 |
double(双精度) |
8字节 |
64位 |
10.0d |
-2^63~2^63-1 |
【三】修饰符
1.修饰符private,protected和public都称为可见性修饰符或可访问性修饰符,因为它们指定如何访问类和类的成员。 这些修饰符的可见性按以下的顺序递增:私有<默认<被保护<公共成员。
2.下表总结了类中成员的可访问性
作用域 | 当前类 | 同一package | 子孙类 | 其他package |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
friendly | √ | √ | × | × |
private | √ | × | × | × |
3.protected成员可以在同一包内被访问,可以在不同包中的子类中被访问,不可以在不同包中的不同类中被访问。
4.使用 private修饰符可以完全隐藏类的成员,这样,就不能从类外直接访问它们。
5.不使用修饰符就表示允许同一个包里的任何类直接访问类的成员,但是其他包中的类不可以访问。
6.使用protected 修饰符允许任何包中的子类或同一包中的类访问类的成员。
7.使用 public修饰符允许任意类访问类的成员。
8.修饰符private和protected只能用于类的成员。public修饰符和默认修饰符(也就是没有修饰符)既可以用于类的成员,也可以用于类。一个没有修饰符的类(即非公共类)是不能被其他包中的类访问的。
【四】集合
集合是属于单列和双列集合的顶层接口,表示为一组对象。其类型为引用数据类型,具体创建对象,通过多态的形式进行。集合是java中提供的一种容器,可以用来存储多个数据。
List:继承了 Collection 接口以定义一个允许重复项的有序集合,不但能够对列表的一部分进行处理,还添加了面向位置的操作 LinkedList,ArrayList,Vector(Stack)
Set:是Collection接口的一个子接口,它表示数学意义上的集合概念。支持对象的添加、删除,而不需提供随机访问 HashSet 以哈希表的形式存放元素,插入删除速度很快,散列无序 TreeSet 不包含调优选项,因为树总是平衡的,保证了插入、删除、查询的性能为log(n),自动排序
Map:不是 Collection 接口的继承。从自己的用于维护键-值关联的接口层次结构入手。按定义,该接口描述了从不重复的键到值的映射。
Hashtable,HashMap,WeakHashMap 在Map 中插入、删除和定位元素,HashMap 是最好的选择。按顺序遍历键,那么TreeMap 会更好。
SortedMap HashMap与HashTable有什么区别? 两者都是用key-value方式获取数据。非同步和空值(HashMap允许null值作为key和value,而Hashtable不可以);HashMap不是同步的,而Hashtable是同步的。
ConcurrentHashMap: ConcurrentHashmap采用final和内存可见修饰符volatile关键字。主要是为并发设计,与Collections的包装不同,他不是采用全同步的方式,而是采用非锁get方式,通过数据的弱一致性带来性能上的大幅提升,同时采用分段锁的策略,提高并发能力。 通常是多线程访问的时候使用,通过使用分段锁技术来对容器中同个资源不同数据段Segment分别加上不同锁。(HashTable)是对同个资源只用一把锁。
【五】总结
除了上面讲到的这几个基础知识,Java中还有很多最基础的知识,都是在日常工作中所需要用到的,像最基本的语法、数据结构、算法等,越是最基础的东西我们越不会太在意,而越是最基础的知识反而有时越容易出错,往往在程序里面越是最基础的内容越值得我们引起重视,因为一个严重的故障往往最终都是由一个很小的错误或纰漏引起的。学编程从掌握好基础知识开始!
面试连载系列
《面试系列篇》——11种常用的设计模式
《面试系列篇》——ShardingJdbc分库分表浅谈
《面试系列篇》——MySQL慢查询及解决方案
《面试系列篇》——面试官最喜欢问的Redis知识
《面试系列篇》——听说面试官喜欢问这些MySQL知识
《面试系列篇》——Paxos与Zookeeper分布式一致性面试必备
《面试系列篇》——Java这些最基础的知识,你还记得多少?相关推荐
- 程序员面试系列之Java单例模式的攻击与防御
我写的程序员面试系列 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Java ...
- 死磕面试系列,Java到底是值传递还是引用传递?
Java到底是值传递还是引用传递? 这虽然是一个老生常谈的问题,但是对于没有深入研究过这块,或者Java基础不牢的同学,还是很难回答得让人满意. 可能很多同学能够很轻松的背出JVM.分布式事务.高并发 ...
- Android 面试系列(一)Android 基础
文章目录 序言 四大组件 Activity Activity 生命周期 onStart() 与 onResume() 区别? Activity 启动模式 launchMode 使用 Intent 标记 ...
- 面试轻松讲清楚 Java 面向对象的问题与知识(类与对象,封装,继承,多态,接口,内部类...)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- Java的一些基础小知识之JVM与GC (转)
一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太阳微 ...
- java网络编程基础(知识+代码示例)
目录 网络的相关概念 常用类 InetAddress类 Socket类 TCP字符流编程简单样例 TCP字节流编程简单样例 UDP字节流编程简单样例 小知识点 网络的相关概念 网络:两台或多台设备通过 ...
- Java线程知识你还记得多少?
/ 今日科技快讯 / 近日发布的<2021年企业年终奖发放计划调研报告>显示,2021年年终奖的人均水平为2.3万元, 2021年企业年终奖额度相当于员工2.1倍月薪.41%的企业 ...
- java 懒加载模式_JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载
我写的程序员面试系列文章 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Jav ...
- 银行java面试题手写代码_面试系列——手写代码实现(一)
前言 本文是面试系列篇的实现篇.笔者整理了面试过程中可能会遇到的手写实现,以及它的原理.这可以帮助面试者在笔试环节获得良好的加分. 其他文章系列,欢迎关注我文末的公众号 正文 apply和call a ...
- JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载
2019独角兽企业重金招聘Python工程师标准>>> 我写的程序员面试系列文章 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Sprin ...
最新文章
- spring boot 打包jar,jar没有主目录清单
- java实现单词替换_java – 正则表达式将空格和单词替换为单词的toFirstUpper
- IIS虚拟目录实现与文件服务器网络驱动器映射共享
- 怎样才能恢复误删的数据-免费版本
- 剑指offer——面试题60:把二叉树打印成多行
- CentOS 7.5 编译安装 Nginx 1.15.3
- 老李分享:浏览器引擎的介绍
- kitti数据集label解析和可视化教程
- PowerDesigner生成java类图
- SQL 数据库清理数据库日志
- 单片机毕业设计 stm32车牌识别系统
- java应用 cpu占用过高问题分析及解决方法
- 基于51单片机智能可控洗衣机控制系统设计
- ESXI虚拟机搭建华三vFW2000虚拟防火墙
- go: cannot find main module, but found .git/config in
- 计算机的信息表示(进制的转换)
- python爬山算法
- 光与色的故事--颜色模型浅析
- 145.如何评价个性化推荐系统的效果-2
- GeoServer学习(初学WMS、WCS、WFS、WMTS)
热门文章
- 计算机二级选择题需要刷吗,“我明天就要考计算机二级了”
- Mongo和Couch对比
- 在SQL server 2008 R2进行数据查询操作时提示 “对象名无效”的问题
- 微信小程序无法看视频
- 143_win10如何删除默认输入法
- 每周读书#12 - 秘密
- 关于SQL Server中left join on and 用法的介绍
- html的abbr标签,html中如何使用abbr标签
- xpadder教程:自定义设置游戏手柄的图片
- 听王自如聊蜕变历程:云计算时代如何输出价值