JavaSE(1)


基本数据类型、运算符、优先级、表达式,Scanner扫描器


基本数据类型:


基本数据类型的存储空间是固定的,如果存储的值超过基本数据的范围就会益处从而出错,而且基本类型都在计算机字长范围内,计算机可以使用指令一次性处理

基本数据类型可以直接进CPU进行计算和缓存,一般不会进入内存和硬盘,多时间是出于CPU当中,因此对基本数据类型的处理最快。

基本数据类型通常都有配套的CPU指令

由于计算机中使用二进制,所以大多数小数保存的都是近似值,0.5除外


类型转换要求

不能损失精度

类型之间要兼容才可以转换(比如数值类型之间的转换char类型是个特例)

当有精度损失的时候,要求使用‘()’强制转换符,进行强制转换,不推荐使用

字符串处理

字符串太长,不适合保存在CPU中,通常是放在内存中处理

保存在内存中的类型属于引用类型。cup使用时找它的内存中的地址(32bit)然后加载运算

字符串被设计成不可变的

String被设计成不可变的主要目的是为了安全和高效。这与String的底层实现使用连续存储的数组实现有关

因为内存中存储是非常紧密的,后面没有可供修改使用的空间(大概率事件)

如果有,修改字符串需要开辟的新空间和移动操作使得性能降低

如果使用链式存储,会使存储空间增大和遍历速度急剧下降,得不偿失

字符串的拼接操作

每一次拼接都会产生新字符串,浪费存储空间循环拼接更是如此

String.format() 字符串格式化

Scanner扫描器

Scanner 的输入的回车对下一次输入造成影响的问题

该问题出现是一种对nextXxx()、next()、nextLine()三类方法的不了解造成的;

nextXxx()和next()不会清空缓冲区里的回车符,而nextLine()会清除缓冲区里的回车符;

nextXxx()方法只读取当前行中对应的数据类型,如果行首发生类型不匹配,就会抛异常;

若类型匹配就从键盘缓冲区读取相应的值(遇到分隔符“空格”“回车符”停止读取),分隔符以及其后的内容仍然残留在缓冲区中,比如nextInt()只读取"123 sdff"中的123,而“ sdff”残留在缓冲区里,

这时扫尾的nextline()就来了,正如其名,将上一行中未被读取的内容从缓冲区中读取出来。

nextline()只以换行符作为分隔符,而next()作用与nextLine()类似,但以空格和回车符作为分隔符。

注意:缓冲区里残留的上一行里面的空格和D以及回车符被nextline全部读取出来,此时已清空缓冲区了。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • IT发展趋势# It技术总共经过了四次革新,分别是:--大型机时代:IBM代表PC/MAC机时代:MS apple...
    三步之内必有一坑阅读 519评论 0 2
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,478评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,790评论 18 399
  • 校服是一道靓丽的风景,绚丽的彩衣装点青春,记忆就是一把刀!时不时捅你一下!——题记。 无意间,我看到了这张照片。这...
    吏冰雪阅读 699评论 15 5
  • 我的传销梦电影,是这个募资不行还是不公布真实数据?市场上以公益为主题的募资盈利模式几乎是忽悠,你觉得搞传销真的会发...
    杰杰6889阅读 296评论 0 0

友情链接更多精彩内容