关于JDK中的运算符和变量
类名首字母必须大写。多个单词组成的类名,每个单词的首字母大写。
只要起名称就要让他有意义。Java中的关键字都是由小写字母组成的。
在项目中给标示符起名字在公司中大都有固定的规则。一般加上标示符和$符号。
大名称$小名称
Java中的文档注释
/**
文档注释
*/
文档注释和主要块注释的区别就是可以利用javadoc.exe进行提取,提取出来的主要是给程序员看,不是目标用户看。
注释中的嵌套
块注释中不能有块注释
例如
/*床前明月光
/*疑是地上霜*/
*/
(最后一个结尾注释符号就无法进行匹配)
用块注释扩大或者缩小范围可以进行程序的排错调试。
注释是不编译到字节码(class文件中去)。带注释的文件和不带注释的同一个文件编译之后的class文件的占用空间相同。
代码仅仅是思想的一种体现,敲的代码越多思想也成熟,两者相辅相成。
对于整数有四种表现形式:
二进制
八进制 0开头表示
十进制
十六进制 用0x开头表示
十六进制当大于十的时候再用两个阿拉伯数字10,11……因为是两位数字表示表示容易引起误解,就用一个字母表示。
因为十六进制是含有字母的所以用0x 开头。X表示是可有有字母表示的。
电报就是用发出的“滴滴”之间的间隔传递信息(相当于01)。电报不是每个滴滴之间是一样的。
关于进制的转换(主要用二进制和十六进制,八进制并不是太常用)
左边二进制,右边十进制
11=3
111 = 7;
1111= 15 ;
11111= 31;
-1010-1110
010-101-110
2 5 6 0256
-1010-1110
10 14 0xae
结论:
八进制数:其实就是二进制位 3个二进制位一个八进制(111=7,再多一个就进位了)
十六进制:其实就是二进制中的四个二进制位为一个十六进制
三十二进制用来表示的话会更短,但是需要用更多的字母去表示这个三十二进制数,所以现在用的十六进制就停止了。
Ipv4 是四段二进制的数表示的
Ipv6 是六段十六进制数表示的,ipv6足够地球上所有的设备用几十年,物联网——任何电器设备电冰箱等都分配一个固定的ip地址。
现在都是动态的ip地址的,你不上网了ip地址就释放了。
Ip地址固定有利于查找,控制设备等。。。

上图是我个人计算机在没有联网的情况下的ipconfig /all
这个是在没有联网的情况下的信息;
可以看到我现在的笔记本是没有IP地址的,今天(6月12日)刚刚看了下网络编程的课程内容。
IP地址相关的内容是网络层“网际层”。如果不联网的话是没有IP地址的。上图的内容也说明了这一点。
另外:本地主机计算机的默认的IP地址是127.0.0.1,别名叫做localhost。
本地有个DNS解析文件,具体位置在C:\Windows\System32\drivers\etc文件路径的 hosts 文件中有记录。localhost可以再修改成别的名字。
负数的二进制数
其实就是这个数的正数的二进制取反,加1.
比如-6
0000- 0110
取反1111- 1001
+0000-0001
--------------------------
1111-1010 -6
负数的二进制的最高位是1。
Long类型声明最后加上一个l。因为默认是int
Float类型声明最后加上一个f。因为默认是double
Char类型声明必须是单个字符“12”就是错误的
Char=‘1’
也可以是一个单独的汉字。一个汉字是两个字节和char类型一样。
2个字节,一个字节是8位
0000-0000 0000-0000 0000-0000 0000-0000
java是强类型数据语言 javascript就是弱类型语言。
运算两端是同类型才能运算。不同类型是不能运算的。
有特殊情况:就是强制类型转换(强转动作要慎用,很有可能丢失精度,舍去高位,留下低位)
Int和float进行运算,两个都是4个8位,float中有一个小数精位,运算之后会保留这个小数精位。不过实际中很少有这俩个类型的运算。
Char类型能够运算。Char chr= ‘a’ +1 a是两个字节,1是四个字节。
底层找到a对应的二进制码
Char(’a’+1) 强制类型转换
老美在设计计算机的时候把生活中的文字和二进制进行了一一对应。
就是ASCI表,仅仅限于老美的文字和符号。
类似的中国文字进行了编码编号GB2312(数量不够)一步步扩展,最终是GBK。
Char(‘你’+ 0) 底层“你”也是有对应的数字。
最后集合一个各个国家的码表弄成了Unicode码表,任何国家的码表都兼容ASCI码表。
byte b = 4
b = 3 +4;(或者b=7)
system.out.println(b)
这样子是不会报错的。正常打印出b=7.
byte b = 4;
btye b1=3;
btye b2=7;
b=b1+b2;
system.out.println(b);
这样子就是会报错的,提示可能丢失精度。
其背后的原理是这样的:
byte b=4,;4是int类型,编译器会对4进行检查,byte是1个字节,编译器会舍去前边三位。留下最后一位,因为b是没有超出byte类型的范围的(-128~127)。所以正常打印。
而第二种情况是b1和b2都是变量,他们的值会是变化的。b=b1+b2的是值是无法进行判断的检查的。第一种是因为等式后边是常量,编译器可以判断。
假如b2=127,b=b1+b2;这样b的值肯定无法正常给。
byte b=4
byte b1=3;
byte b2=7;
int x;
x=b1+b2;
system.out.println(x);
这种情况是没有问题的,b1和b2进行强转,都在int类型的范围之内。
int x;
int x1 = 10;
int x2 = 98;
x = x1+x2;
System.out.println(x);
这个情况是没有问题。
就是当x1或者x2特别大,超过了int类型的最大范围。
int x1 = Integer.MAX_VALUE;(代表int类型的最大值;
这样x = x1+x2,就会有精度的益出。高位的舍弃。出现运算错误。
以上就是int和byte类型的区别。int 是默认类型就没有byte类型的现象。
int x=6370;
x = x/1000 *1000;
java是强类型语言,x=6370,和1000都是整数,两个整数相除任然是整数。
javascript中这个运算就是实际的平常运算结果,js是弱类型的。
两者都是4个8位,不可能两个数一整除出现8个8位。内存挂了。在底层会舍去小数位,只留整数位。
%是取余,模运算。
-5%2 = -1
5%-2 = 1
如果%运算有负数的时候,负数只参考被模数。(5就是被模数)知道就行,一般很少用负数运算。
任何数模以2不是0就是1,正因为有这个特性可以进行一些开关算法的定义。(是否)
隔一行给一个表单设置颜色,等等。
“+”连接符
任何数只要和字符串链接都是生成一个新的字符串。
所以可以用这个方法把一个数字类型或者是别的别的类型+加上一个””,变成字符串类型。
int a=3,b;
b=a++;(大白话讲就是先把a的值赋值给b,然后再自增,但是内存不是这样的原理。)
a++,a在前面,a的值需要先参与其他预算(就是a赋值给b的过程),然后再去参与自增的动作。
b=a++;这里面既有自增预算又有赋值运算。a++,a本身是个变量,a要先运算,a要做个赋值运算,但是a没有运算完,a要做个++运算,所以为了保证a的值和其他运算的参与,所以先做了一个自己值的保留,预存,不保留的话自增完原值就没有了。
a的值预留下来再付给b。
所以a会在内存当中,先把a的值临时预存下来。然后到运算区中加1,等于4,再赋值给a。

int i=3;
i=i++;
system.out.println(i);
输出i的值是3,不是4。(这个题目很纠结。)
解析见下图。

short s=3;
s+=4;
s = s + 4;
system.out.println(s)
第一种不会报错,第二种会报错。
这个现象和上面的byte类型的差不多。3是int类型4个字节,short是2个字节,舍去高位留下最后的字节,进行存储。
s+=4,在底层进行了强制类型转换,相当于s= (short)s+4;这是赋值运算所具备的特点。
而单纯的s=s+4;因为都是变量可能超出short类型范围。
关于JDK中的运算符和变量的更多相关文章
- JS中的运算符 以及变量和输入输出
1.算术运算(单目运算符) + 加 .- 减.* 乘. / 除. % 取余.++ 自增.-- 自减. >>> +:有两种作用,链接字符串/加法运算,当+两边全为数字时,进行加法运算, ...
- python中的运算符及表达式及常用内置函数
知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数 ...
- Android中配置JDK和SDK的环境变量
JDK环境变量的配置: 右击"计算机"或"我的电脑",选择"属性"-->"高级"或"高级系统设置&quo ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- 13万字详细分析JDK中Stream的实现原理
前提 Stream是JDK1.8中首次引入的,距今已经过去了接近8年时间(JDK1.8正式版是2013年底发布的).Stream的引入一方面极大地简化了某些开发场景,另一方面也可能降低了编码的可读性( ...
- 错误: 从内部类中访问本 地变量vvv; 需要被声明为最终类型
从github 下载了源码, 进行编译, 出现了下面的错误 E:\downloads\ff\elasticsearch-master\elasticsearch-master>GRADLE :b ...
- C语言中的运算符
1. 在C语言中运算符包括:算术运算符.关系运算符.赋值运算符.逻辑运算符 2.用运算符把变量.常量连接起来的式子就是表达式 3.我们阅读一个表达式,从表达式的功能和表达式的值来看 4. 算术运算符和 ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
- JDK中的Timer和TimerTask详解(zhuan)
http://www.cnblogs.com/lingiu/p/3782813.html ************************************************** 目录结构 ...
随机推荐
- 现代程序设计 homework-09
现代程序设计 homework-09 这次作业是要求将homework-02做成一个可演示的应用,目的是为了让用户看到程序的计算步骤以及中间结果. 借此机会也学了一下JavaScript,感觉总结的地 ...
- Shell统计报表表格生成
基本需求 分析完数据后,一般需要将数据以附件的形式发送处理,这个已经在<>中有介绍,如何 用Python实现附件的发送. 但不是所有人都关心附件的内容,一般邮件中需要有些概要的信息,如附件 ...
- Laravel Configuration
Introduction All of the configuration files for the Laravel framework are stored in the app/config d ...
- Linux中监控命令top命令使用方法详解
收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...
- 用ALAssetsLibrary将过滤后图片写入照片库
转载自:http://blog.sina.com.cn/s/blog_61235faa0100z3dp.html CIImage *saveToSave = [filter outputImage]; ...
- 439. Segment Tree Build II
最后更新 08-Jan-2017 开始介绍线段树的主要作用了,可以快速在区间查找极值,我猜是这样的..... 一个NODE的最大值取决于它左边和右边最大值里大 按个,所以,所以什么?对了,我们该用po ...
- arcmap+vs2010
esri为vs2010提供了addin开发模版,有几个关键的地方注意下 1.C:\Program Files (x86)\MSBuild\Esri\下存在ESRI.ArcGIS.AddIns.Serv ...
- mysql 报错之创建自定义函数
I experienced this error while trying to alter one of my stored procedures remotely on a master serv ...
- C语言signal处理的小例子
[pgsql@localhost tst]$ cat sig01.c #include <stdio.h> #include <signal.h> static void tr ...
- java泛型的讲解
java泛型 什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指 ...