本帖最后由 战之都 于 2019-9-2 11:12 编辑
上面全是长篇理论方便和我一样0基础的小小白理解
大佬直接下滑 谢谢
1关键字
1 概述
Java的关键字对Java的编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。简单的来说关键字已经被Java语言占用都有自己特定的意义,不能使用在其他地方
备注:不必死记硬背,如果使用关键字作为标识符,编译器能提示错误。
goto 是java的保留字,意思是java并没有使用goto,以后是否使用未定。
标识符
1概述
就是程序员在写Java程序时,自定义的一些名字,类名就属于标识符的一种。
标识符除了应用在类名上,还可以用在变量、函数名、包名上。(要求记住,以后会经常见到这些)。
2 命名规则
1. 标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
2. 不能以数字开头,不能是关键字
3. 严格区分大小写
4. 标识符的可以为任意长度
3 命名规范
1. 包名
多个单词组成时所有字母小写(例:package com.zhiyou100)
2. 类名和项目名
多个单词组成时所有单词的首字母大写(例:HelloWorld)
3. 变量名和函数方法名
多个单词组成时第一个单词首字母小写,其他单词首字母大写(例:lastAccessTime、getTime)。
4. 常量名
多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE)
注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。
详见可参考阿里开发手册:http://note.youdao.com/noteshare?id=a9eec093c69ed8a5e3ab66c361eba484&sub=2F7FD75C65E44A819A11C0B890987A5E
常量
1 概述 常量是指在程序运行过程中其值不能改变的量。 Java中常量的分类: 整数常量 : 所有整数 小数常量 : 所有小数 布尔常量 : 只有true和false 字符常量 :使用’’引起来的单个字符 字符串常量 :使用“”引起来的字符序列,“” 、“a” 、” ” null常量 : 只有一个值null
转义字符
1 概述
特殊字符使用”\”把其转化成字符的本身输出,那么使用”\”的字符称作为转移字符。
转义字符 | 名称 | Unicode | \b | Backspace (退格键) | \u0008 | \t | Tab (Tab键盘) | \u0009 | \n | Linefeed (换行) | \u000A | \r | Carriage Return(回车) | \u000D | \\ | Backslash (反斜杠) | \u005C | \' ( \" ) | (Double) Quote(单(双)引号) | \u0027(\u0022) | 变量
1 概述
用于存储可变数据的容器。
2 变量意义
计算机主要用于处理生活中的数据,由于生活中存在大量的可变数据,那么计算机就必须具备存储可变数据的能力。
比如:
1.时间每一秒都在发生变化,根据不同的时间要有不同的处理方式。
2.气象站会根据温度发布天气预报信号。
3 变量特点
1)在内存中开辟一块空间
2)该空间用来存储特定类型的数据
3)在类型的取值范围内数据可以随意改变
4)该空间必须有名字
4 变量声明
语法:
1)数据类型 变量名 = 初始化值;
2)数据类型 变量名;
变量名 = 初始化值;
以上两种声明方式, 如果初始化值一开始就确定了可以使用第一种生声明方式
如果值是通过运算等方式获取一开始不确定时,可以使用第二种声明方式
数据类型
Java中的数据类型分为两大类:基本数据类型和引用数据类型
1 基本数据类型
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0
short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767,默认值0
int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0
long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0
Lfloat:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0
char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false
2 引用数据类型
类、接口类型、数组类型、枚举类型、注解类型。可以说除了基本数据类型都是引用数据类型
类型转换
Java中可以进行不同数据类型的加减乘除运算吗?是可以的。在算术运算符中已经体验过如果两个整数(int)相除会去掉小数部分。如果需要保留小数部分,可以让除数或者被除数变为double类型的(5变为5.0)。其实Java是自动的将int的那个数变为了double类型了也就是Java自动的将整数变为了浮点数。例如5/2.0 其实是5.0/2.0
1 自动类型转换
可以将一个数赋值给更大数值范围的变量,例如可以将byte类型的变量赋值给short类型的变量可以将short类型的变量赋值给int类型的变量可以将int类型的变量赋值给long类型的变量。
Java内部其实做了工作就是自动将数值进行了类型提升,就叫做自动类型转换(也叫隐式类型转换)转换规则:从存储范围小的类型到存储范围大的类型。具体规则:byte→short(char)→int→long→float→double
2 强制类型转换
强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换转换规则:从存储范围大的类型到存储范围小的类型。
具体规则为:double→float→long→int→short(char)→byte语法格式为:(转换到的类型)需要转换的值案例:double d=3.14;int i=(int) d;
算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。表格中的实例假设整数变量A的值为10,变量B的值为20:
操作符 | 描述 | 例子 | + | 加法 - 相加运算符两侧的值 | A + B 等于 30 | - | 减法 - 左操作数减去右操作数 | A – B 等于 -10 | * | 乘法 - 相乘操作符两侧的值 | A * B等于200 | / | 除法 - 左操作数除以右操作数 | B / A等于2 | % | 取余 - 左操作数除以右操作数的余数 | B%A等于0 | ++ | 自增: 操作数的值增加1 | B++ 或 ++B 等于 21(区别详见下文) | -- | 自减: 操作数的值减少1 | B-- 或 --B 等于 19(区别详见下文) |
烧脑开始
做为一名合格的小白看下面的内容真的有点不容易啊
a++和++a区别:a++和++a的含义都是一样的,都是在a的基础上再加上1。例如
输出的结果是: 2
2
接下来:
[Java] 纯文本查看 复制代码 // int a = 1;
// a = a++;
// System.out.println(a);
// int a = 1;
// a = ++a;
// System.out.println(a);
// int a = 1;
// a = a++;
// System.out.println(a++);
// int a = 1;
// a = a++;
// System.out.println(++a);
// int a = 1;
// a = ++a;
// System.out.println(++a);
// int a = 1;
// a = ++a;
// System.out.println(a++);
就这几行代码我历经磨难,终于是搞清楚了.结果我就不放出来了
想当初我这六道题错了四次才知道 a++和++a的区别在于备份和自加1的顺序不同
short s1 = 1; s1 += 1; 有错吗?
我也没彻底搞清楚 现在还有点蒙圈 等你们告诉我最好详细一点,我下次更新总结一下.
为了实现实现两个int类型变量值的交换,要求不使用中间变量再补充一点 什么是异或 :
变量的值不同时结果为1,值相同时结果为0
在java中异或的符号是 ^,具体运算结果看下表:
[td]
[Java] 纯文本查看 复制代码 int a =2;
int b =3;
System.out.println("a="+a+",b="+b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a="+a+",b="+b);
输出结果
[Asm] 纯文本查看 复制代码 a=2,b=3
a=3,b=2
- 第一次异或的结果 等于 a b 两个变量的差异值
- 第二次,差异值异或b,结果自然就是另一个变量的值a,这个时候b=之前的a
- 第三次:差异值异或b,结果自然就是b
两个变量经过3次异或后,值就互换了,示例为了大家理解方便举例变量2和3,实际上任何值都是一样的 |