接着之前的知识,今天主要回顾一下命名的一些规则和关于运算方面的基础知识吧。
  
  1. 驼峰命名法
类名/接口名:如果由多个单词组成,那么每一个单词的首字母大写。(比如说,HelloWorkd)
变量名/方法名:如果由多个单词组成,那么第一个单词的首字母小写,其余单词的首字母大写 playGame main
包名:如果由多个单词组成,那么每一个单词之间用 . 隔开,所有的字母都是小写 cn.tedu.de
常量名:如果由多个单词组成,那么每一个单词之间用 _ 隔开,所有字母都是大写 PLAY_GAME
  2. 注释
(用于解释说明的文字)
// 注释文字  单行注释
/* 注释文字*/  多行注释
/** 注释文字/  文档注释 --- 里面的注释内容可以利用 javadoc 命令提取出来形成文档(就是对程序的说明书)*会生成错误是因为配置环境变量时加入了 CLASSPATH,因为版本是 1.8 以上的了,所以可以删掉。
           
  3. 字面量
(在计算机中不可改变的量)
整数常量:所有的整数(比如说 7、15、186、42)
小数常量:所有的小数(比如说 3.12、8.005、6.0)
字符常量:将一个字母、数字或者是符号用 ‘ ’标识起来(比如说 ‘a’、‘+’、 ‘5’、‘小’、‘ ’)
字符串常量:将一个或者多个字符用 " " 标识起来(比如说 "abc"、"+")
布尔常量:true/false --- 用于表示逻辑值
空常量:null

(计算机通过有电、没电这样的小开关来存放数据,只有0和1两种状态,是二进制存放)
          
  4. 进制
(是一种计数方式(分和秒是 60 进制,天是 24 进制,周是 7 进制,但是常用的是 10 进制,计算机是二进制))
二进制:0-1,满 2 进 1  1+1=10  11+1=100  111+1=1000。在程序中以 0b/0B 开头标记一个二进制数字(从 JDK1.7 开始) 0b1001  0b00101
八进制:0-7,满 8 进 1  7+1=10  27+1=30 77+1=100  要求以 0 开头标记一个八进制数字
十进制:0-9,满 10 进 1  Java 中数字默认就是十进制
十六进制:0-9,A-F(不区分大小写),满 16 进 1  9+1=a  a+1=b  f+1=10  39+1=3a  3f+1=40  99+1=9a  9f+1=a0  af+1=b0  af+1=b0  ff+1=100,要求以 0x/0X 作为开头标记
  4.1进制的转换
十进制和二进制之间的转换
十进制转换为二进制:将这个十进制数字除以 2 ,从下依次向上倒取余数。
二进制转换为十进制:从这个二进制数字的最低位次开始,依次乘以 2 的0、1、2、…… 次,最后求和。
 十进制和其他进制之间的转换
十进制转化为其他进制:十进制数字向哪个进制转化那么就除以对应的进制,然后取余数,将余数倒排。
其他进制转化为十进制:从这个进制的数字的最低位次,然后按位次乘以当前的进制的位次次幂,最后求和  0274=4*8^0+7*8^2=4+56+128=188
一个面试题:16 * 5 = 150    (6 + n) * 5 = 5n + n^2,先设的是 n 进制,个位数是 6 ,那么进制肯定会大于或等于 6,于是前面可以表示为进制数相乘,后面可以用 10 进制转换为 n 进制)
八进制和二进制之间的转换
二进制转八进制:八进制数字排列 --- 三变一(就是从后往前数,三个三个一组,不足位数就在前面添 0)(比如说  001 101 010 = 0152    001 010 111 011=01273
八进制转化为二进制:05473 = 101100111011  03517 = 11101100001111
十六进制和二进制之间的转化:101100111011 = 0xb3b  011101001111 = 0x74f
0xd2c=110100101100  (0到15的二进制数字背住)
扩展:十进制小数转换为二进制
5.24 = 101.001111
0.24 * 2=0.48*2=0.96*2=1.92->0.92*2=1.84->0.84*2=1.68->0.68*2=1.36  0.72  1.44  0.88  0.76
绝大部分的小数转化为二进制都是无限的 --- 所以计算机小数的时候会产生舍入误差(存小数的时候会出现问题,比如 0.13=0.12999999999)


 
   5.变量
(在程序中用于存储数据的容器,)
定义格式:数据类型  变量名 = 数据;int i = 5;
变量不能重名
变量必须先定义后使用
变量必须先给值后使用
变量必须在哪儿定义就在哪儿使用
扩展:计算机存储单位
每一个二进制数字称之为 1 位 --- bit -b
字节 - Byte - B  1B = 8b
千字节 - kilobyte - KB 1KB = 2^10B = 1024B
兆字节 - MB -> GB-> TB ->PB(帕比特)……
8Mb = 1MB
100Mb = 12.5MB(MB 是你的网速,这就是为什么你的网速一直达不到 100MB 的原因)
3GB = 3000MB --- 在通信领域是按照千进制计算

  

  6. 数据类型
  
  6.1基本数据类型
6.11数值型
整数型
byte -字节型 - 1个字节 - -27~27 -> -128~127
byte b=25; byte b2=127; byte b3 = -128;
short - 短整型 - 2个字节 - -215~215-1 ->-32768~32767
short s = 800; short s2 = 1500;
int - 整型 - 4 个字节 - -231~231-1 ->  -2.1*109~2.1*109 - Java 中,整数默认为 int 类型
int i = 6;  int k=5_482_637(当表示一个比较大的整数的时候,可以使用 _ 进行分类,这种写法是从 JDK1.7 出现的)
5 482 637 
long - 长整型 - 8个字节 - 263~263-1 -> -1018~1018,需要以 L/l 作为结尾标记
long l=54L;
浮点型
float - 单精度 - 4 个字节 -> -1038~1038  ---  需要以 f/F 作为结尾
float f=5.87f;  float f=3.87F;
double - 双精度 - 8 个字节 ->-10308~10308  Java 中小数默认为 double 类型 - 小数结尾可以添加 D/d 作为标记。
double d = 4.5; double d2=2.58; double d3=9.54D;
char - 字符型 - 2 个字节 -> 0~65535,使用的是utf-16
char c = 'a';  char c2 = '\ua4f3'(表示用 uft-16 的编码形式来定义的)  char c3 ='中'; 
  7. 转义字符
\t-制表符 table  \r-回车 return  \n-换行 next (打字机上回车把针头挪回开始位置,换行才是挪回到下一行)
\\-反斜杠 \  \'-单引号 '  \"-双引号;

扩展:将字符转换为数字的过程称之为编码 --- 编码表
ISO - 8859 -1 - 西欧码表 - 1个字节表示 1 个字符  a
(美  回  区)
gb2312 - 国标码 - gbk - 2 个字节表示 1 个字符 - 收录了常见的简体汉字以及一部分常见的繁体汉字
Unicode 编码体系 - 收录了世界上常见语言的基本字符(像西夏文、原始部落的语言就不用收录了,) --- 规定了一系列的编码规则 - utf-8 -> 3个字节表示一个字符  utf-16 ->2个字节表示一个字符(java 用的)
注意:规定无论哪张码表兼容西欧码表
k 1 1 1 1 1 (英文不区分码表)
区 X 2 3  2(汉字要区分码表)

boolean - 布尔型 -true/false,用于表示逻辑值(内存随着操作系统、JDK 版本在变化,)
boolean b = true;  boolean b2 = false;
6.2 引用数据类型 --- 数组 [] 类 class 
  7.数据类型的转换
  7.1自动类型转换/隐式转换
byte b = 125;
int i = b;
规律一:小的类型自动转化为大的类型
short s=7;
long l=s;
long l=500; //500是一个整数,整数默认为 int,int 的范围比 long 小,所以可以自动转换
float f = 56.71F;
double d = f;
int i=300;
double d=i;
规律二:整数类型可以自动转化为浮点类型,可能会产生一个舍入误差(1.23456794E9  xey 表示 x*10^y,而 ox3e5 才表示一个 16 进制)
int i = 500;
float f=i; // i 是 int 类型,int 的取值范围比 float 小,所以 int 可以自动转化为 float
long l=259L;
float f=l;
float f=-25;// -25 是整数,
char c='a';
int i=c;
规律三:
  7.2强制类型转换/显示转换
int i=135;
byte b=(byte)i;
规律一:当把大的类型转化为小的类型的时候,因为补码的换算问题,所以可能会产生一个意想不到的结果
double d = 6.4;
int i = (int)d;
规律二:小数在转化为整数时要舍弃小数位。
扩展:数据的原反补三码
数据类型的最高位是符号位 --- 如果最高位是 0,则表示一个正数,如果最高位是1,则表示一个负数。
计算机中存储的是数据的补码
直接计算出来的二进制数字是数据的原码

int i=7;
00000000 00000000 00000000 00000111  原码
00000000 00000000 00000000 00000111  反码
00000000 00000000 00000000 00000111  补码
如果是负数,那么反码是在原码的基础上,最高位不变,其余位 0<->1; 补码是在反码的基础上 +1
int j=-9;
10000000 00000000 00000000 00001001  原码
11111111 11111111 11111111 11110110  反码
11111111 11111111 11111111 11110111  补码
byte b = -18;
原码:10010010
反码:11101101
补码:11101110(计算机中存放的就是这个,补码)
int i = 135;
byte b = (byte)i;
00000000 00000000 00000000 10000111
10000111 补码(计算机中存放的是这个,补码)
10000110 反码
11111001 原码(1+8+16+32+64=121 -> -121,显示出来的是这个)
注意:规定用 -0 表示当前类型的最小值    1000 0000 --- -128(原反补都是相同的)0000 0000 --- 0
byte b = 126;
+1 = 127 + 1 = -128 
 
  8. 运算符
  8.1算数运算符
(+ - * / % ++ --)
注意:
1.byte/short/char 在运算时自动提升为 byte b1 = 5;  byte b2 = 7;  byte b = b1+b2;(是会报错,因为后面是 int 型的,)
2.整型在运算的时候保持类型不变(比如说一个整型除以一个整型还是整型)
3.小类型和大类型运算,结果一定是大类型(比如说一个 int 型除以一个 double 型就是一个 double 型的)
4.任意整数/0 - ArithmeticException - 算术异常 
任意整数/0.0 任意非零小数/0 - Infinity - 无穷大
0/0.0  0.0/0.0  0.0/0 NaN - Not a Number - 非数字
% - 取模运算 - 取余运算
9 % 4 = 1 、3 % 8 = 3
-9 % 4 = -1 、 9 % -4 = 1 、 -9 % -4 = -1
% 的结果的正负看的是 % 左边数据的正负 -> 如果左边的数字是一个正数,那么结果就是正数;反之,那么结果就是负数
5%1.4=0.8 、 6.3 % 1.7  = 1.2
++/-- 自增/自减运算
++/--  如果在变量之前,那么先自增/自减,然后参与后续运算
++/-- 如果在变量之后,那么先参与运算,然后再自增/自减
int i= 6;
int j=i++ + ++i; //输出结果 i = 8 ,j = 14

byte/short/char  都可以参与自增运算
char c = 'b'
int c = c + 2; ->100
'a' ~'z' -> 97~122      'A'~'Z' -> 65~90      '0' ~'9'-> 48~57

8.2赋值运算符
  8.3关系运算符
  8.4逻辑运算符
  8.5位运算符
  8.6三元运算符
关于 >> 和 >>> 的区别:
https://blog.csdn.net/blog_szhao/article/details/23997881

转载于:https://www.cnblogs.com/tangdiao/p/9403689.html

Java 基础 | 命名和运算相关推荐

  1. java基础篇(5) 运算顺序的深入解析

    1. 从左往右的计算顺序 **与C/C++不同的是,在Java中,表达式的计算与结果是确定的,不受硬件与环境的影响.**如: int i = 5; int j = (i++) + (i++) +(i+ ...

  2. Java基础之移位运算,为什么高位补1?

    首先,了解原码.反码.补码: 原码: 使用高位作为符号位.最高位为0时表示正数,最高位为1时则表示为负数.其余位使用此数字数值本身二进制的绝对值表示. 反码: 使用高位作为符号位.最高位为0时表示正数 ...

  3. Java基础-逻辑与运算-逻辑或运算

      欢迎小白来一起讨论研究                              每周两更 package为 类所在包 public  class为 类名 public static void m ...

  4. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  5. java 字符串转骆驼命名_程序员必知的Java基础:5条命名规范和8种数据类型归纳...

    原标题:程序员必知的Java基础:5条命名规范和8种数据类型归纳 一.Java命名规范 任何一种语言都有一套针对于语言自身的命名的规范,java也不例外.接下来,我就列举一下java对命名的规范. 下 ...

  6. java 全局变量 命名规则_Java 基础 运算符 命名规则 变量 循环

    1.程序: 一组指示计算机执行行动或坐车判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上. 2.软件 与计算机操作系统有关的计算机程序,规程.规则,以及可能有的文件,文档及数据 3.软 ...

  7. Java基础知识(四) 基本类型与运算

    Java基础知识 基本类型与运算 1. Java提供了哪些基本数据类型 2. 什么是不可变类 3. 值传递与引用传递的区别 4. Math类中的round.ceil和floor方法的功能各是什么 5. ...

  8. java类名遵从法_程序员必知的Java基础:5条命名规范和8种数据类型归纳

    一.Java命名规范 任何一种语言都有一套针对于语言自身的命名的规范,java也不例外.接下来,我就列举一下java对命名的规范. 下面重点来了,准备好了嘛? 1.代码中的命名均不能以下划线或美元符号 ...

  9. Java基础每日一练—第4天:加减乘除的运算

    ☆引言☆ 大家好!我是痛而不言笑而不语的浅伤.关注博主不迷路,带你一起共进步.今天是Java基础每日一练第4天,我们大家一起来做今天的Java零基础开始精进的练习题.还是那句话,每日一练,我们共同学习 ...

最新文章

  1. 超越ResNet:南开提出Res2Net,不增计算负载,性能全面升级!
  2. Python图形开发之PIL
  3. 汇编指令mrs_汇编指令 - Mrs.kang - 博客园
  4. mysql主从skip1677_解决字符集不同引起的主从同步异常1677报错问题
  5. 【错误记录】Flutter 设备连接显示 Loading... ( 断网 | 删除 flutter/bin/cache/lockfile 文件 )
  6. Linux查询系统运行的时间
  7. [转载] 让SciTE能够和IDE一样进行成员提示
  8. mysql使用bka_MySQL Batched Key Access (BKA)原理和设置使用方法举例
  9. override,final的使用,两者都是针对虚函数,也就是说要有virtual关键字
  10. java concurrent 框架_Java Concurrent 框架图
  11. oracle中的脱机与联机,使存储池中的设备联机和脱机
  12. 【编程科普】服务器的软件和硬件
  13. 升级完ssh之后login incorrect怎么解决_魔兽世界怀旧服:伏击搜索流,盗贼另类升级刷钱方法简单攻略...
  14. python有道-Python爬去有道翻译
  15. MySql ALTER用法
  16. 模电笔记之共射放大电路
  17. 进qq空间显示服务器失败,QQ空间找不到服务器-进空间找不到服务器的解决办法...
  18. MYSQL 面试常见问题汇总
  19. DiscuzNT 交易插件设计之商品添加,编辑和删除(CUD)
  20. Kafka CPU使用率高排查思路及解决方案

热门文章

  1. 高级C语言教程编码风格
  2. visual c++出错:link问题
  3. SpringBoot Test及注解详解(含Mockito)
  4. 从JDK9的Flow接口说起
  5. 白话详细解读(七)----- CBAM:Convolutional Block Attention Module
  6. STM32F4 HAL库开发 -- 串口
  7. C语言再学习 -- 三字母词(转)
  8. Leetcode-单调数列(896)
  9. Bit-Z CEO长顺入围2018中国经济潮流人物
  10. 【译】Introduction to Byteball — Part 2: The DAG