16.10.18学到的Java知识
1.
突然间发现自己忘了关于自增自减运算符放在变量前后的区别是什么了?
于是乎,我查了资料。
如果只对自变量进行加1或减1的时候,放在前面和后面都是没有区别的。
但是,如果自增自减运算符使用在需要赋值给其他变量或与其他表达式进行计算时,那么就要注意了,因为这个时候自增自减运算符放在前面和后面就是有区别的了。

从图中可以很明显的看见,当进行赋值运算时,当运算符放在变量之后,是先取变量,然后在对变量进行加一或者减一的操作;当运算符放在变量之前的时候,是先对变量进行加一减一的操作,然后再取变量的值。
现在,经过这么一查,顿时对这个问题又加深了印象。
2.
用最有效率的方法计算出2*16等于几。
基于我浅薄的知识基础,第一眼看到这个问题,我真的是不明白,明明直接乘不就可以了么,难道JAVA中还有其他的运算可以计算2*16,。
于是经过我查阅资料,我了解到:
在计算机中,位运算的效率是最高的。所以要想找出最有效率的方法,应该从位运算入手。
Java的位运算提供了左移‘<<’,右移‘>>’和无符号右移‘>>>’运算符,a<<b,即a乘以2的b次方。所以2*16就写成了2<<4;位运算直接对数据进行二进制移位运算,而乘法运算要先在计算机中进行相应的转换,然后进行计算才能得到正确的结果。
综上所述,采用2<<4位运算才是最有效率的。
3.
为了证明第二个问题的正确性,我想知道一个程序运行的时间,于是乎,我就又上网查,
据了解:
“在程序的开头有一个变量记录起始时间,比如说,start = System.currentTimeMillis(),最后一行用一个变量记录结束时候的时间,比如说,end = System.currentTimeMillis(),两者相减即可,结果的单位是毫秒。
System.nanoTime();貌似精度更高吧。。实际测试System.currentTimeMillis()精度是16ms。。nanoTime是1-2ms” ,用这个方法,就可以得到程序运行的时间了,当然,我又发现了一个问题,就是,程序每次运行的时间都不一样,我猜测可能 是由于硬件或者是什么特殊的原因导致的。
4.
&是按位 与 运算,&&是逻辑运算符
5.

这在C++中很明显是对的,但是,在Java中,这样是编译不成功的。那么,为什么呢?
Java中默认的整数类型是int型,对于不同类型的数值进行计算时,结果总是转换为精度最高的数据类型,因此将计算结果赋值给变量时,这个变量的精度不能低于参加计算的精度最高的数据类型,否则就会发生编译错误。
16.10.18学到的Java知识的更多相关文章
- 16.10.17学到的Java知识
1. 例:3-2.6==0.4的值是什么?可能乍一看,感觉是返回TRUE,因为3-2.6=0.4,0.4==0.4:所以返回TRUE. 然而,上面分析在JAVA中是错的. 由于浮点数的运算在JAVA中 ...
- 16.10.16学到的JAVA知识
1. 每个字节就是八位,所以每个字节的取值范围是 -128~127,它可以保存一个英文字符,包括字母,数字和英文标点.而汉字的的数量很多,一个字节没法把所有的汉字表达出来,所以汉字就是用两个字节来存 ...
- 从学习“单例模式”学到的Java知识:双重检查锁和延迟初始化
一切真是有缘,上午刚刚看完单例模式,还在为其中的代码块同步而兴奋,下午就遇见这篇文章:双重检查锁定与延迟初始化.我一看,文章开头语出惊人,说这是一种错误的优化,我说,难道上午学的东西下午就过时了吗?仔 ...
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...
- Java的课后作业——18.10.18
日期:2018.10.18 星期四 博客期:020 小试验任务: 我就发一下代码好了!!! package test1; import java.util.Scanner; public class ...
- [java面试]逻辑推理6 10 18 32 下一个数?编程实现输入任意一个N位置,该数是多少?java实现
题目: 6 10 18 32 下一个数?编程实现输入任意一个N位置,该数是多少? 10 = 6 + 4 4 18 = 10 + 8 4 + 4 32 = 18 + 14 ...
- 即学即会 Java 程序设计基础视频教程(100课整)无水印版
课程总共包含100个课时,总授课长达27多个小时,内容覆盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟通过本套视频的学习,学员能够快速的掌握java编程语言,成为java高手. 课程目录:课时1 ...
- WEBLOGIC 11G (10.3.6) windows PSU 升级10.3.6.0.171017(Java 反序列化漏洞升级)
10.3.6版本的weblogic需要补丁到10.3.6.0.171017(2017年10月份的补丁,Java 反序列化漏洞升级),oracle官方建议至少打上2017年10月份补丁. 一.查看版本 ...
- 对于最近的一些日常总结by520(17.10.18)
---天天考试,各种题型都有,学到了很多新的知识,也发现了自己的许多不足---1.首先,自己的搜索需要加强,特别是广搜,10.18的T1裸广搜没有做对.2.数学的思维和一些逻辑问题需要加强,然后就是要 ...
随机推荐
- 【转】伪静态URLRewrite学习笔记
UrlRewrite: UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite.将我们的动态网页地址转化为静态的地址,如ht ...
- vi 使用入门
几种模式: Normal Mode 命令模式 Insert Mode 编辑模式 Command-line Mode Visual Mode Select M ...
- es6 static
static 定义的是类的方法只有类能调用,而普通方法是实例的方法只有类实例能调用.变量也一样. class A { static fn() { console.log('sss'); } fn2() ...
- java学习第15天(Linklist Vector)
根据集合的分类(上一天有说),首先接触的是ArrayList但是和Collection一样,他没有什么特殊的功能,直接跳过,然后是Vector. 一 Vector A:有特有功能 a:添加 pub ...
- C语言中内存操作函数
一.malloc/calloc 名称: Malloc/calloc 功能: 动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(s ...
- WIn7系统下 打开.exe程序出现已停止工作关闭程序之解决办法
新装WIN7系统出现 .NET组建没有安装 可到官网下载安装 NETFx4.0 运行MVB 上位机SIM.EXE出现应用程序已停止工作问题 解决办法: 需关闭WIN7 DEP 如下 开始-运行( ...
- a different object with the same identifier value was already associated with the session:错误;
当出现a different object with the same identifier value was already associated with thesession时,一般是因为在h ...
- [Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南
本文参考:http://www.cnblogs.com/ifantastic/archive/2013/04/13/3017677.html 安装环境:OS X 操作系统,Python 2.7.10 ...
- nodejs 在linux上后台运行
1.用forever 进行管理 npm install -g forever forever start index.js 2. 用自带的服务nohub nohup node index ...
- 【转载】 C++多继承中重写不同基类中相同原型的虚函数
本篇随笔为转载,原文地址:C++多继承中重写不同基类中相同原型的虚函数. 在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数.下面就是一个例子: class CBaseA { public: ...