java基础整理
一个简单的helloworld方法的分析![程序的基本](https://i-blog.csdnimg.cn/blog_migrate/a36cbf6189f8ecdc3d91e86c7c2bca78.png)
数据类型:
1基本数据类型
数值型:
整数型(byte,short,int,long)
浮点型(float,double)
2 字符型:
(Char)
3 布尔型
(boolean)
2 引用数据类型
类,枚举,注解
接口(interface)
数组([])
序号 数据类型 大小/位 数据范围
1 Byte 8 [-128,127]
2 Short 16 [-215,215-1]
3 Int 32 [-231,231-1]
4 Long 64 [-263,263-1]
5 Char 16 [0,2^16-1]
6 Float 32 [-3E38(-3.41038),3.4E38(-1.7*10308)];
7 Double 64 [-1E308(-1.710308),1.7E308(-1.7*10308)];
8 Boolean 1 True/false
数据类型
基本数据类型:
数值型:
整数型:byte short int long
浮点型 :float double
布尔型:true false
字符型:char
引用数据类型:
类 枚举 注解 接口 数组
变量的作用范围
定义开始到定义它的代码块结束,外面无法访问;
变量没有初始化之前不能使用;
相同的作用范围不能出现同名的变量;
JDK,JRE,JVM分别是什么
Jdk 开发工具包
Jre java运行环境
Jvm java虚拟机
Java是跨平台的 但是jvm不是 因为jvm在不同的平台上需要不同的版本;
什么是关键字?有什么特点?
关键字是系统使用的词语 被java语言赋予了特定的含义的单词
特点 组成关键字的字母全部小写
什么是标识符?由哪些部分组成?常见的命名规则有哪些?
标识符 一般都是 。。的名字。
给类 接口 方法 变量 等取名的是偶用的字符序列
规则 英文大小写字母 数字 和字符 $和_
注意事项 不能以数字开头,,不能是java中的关键字 区分大小写
标识符常见的命名规则
包com.yh
类 或者接口 HelloWorld
方法和变量 userName
常量 PI
变量的赋值注意的问题
JAVA程序中,整数的默认的类型是int 如果整数超过了 int 的范围 那么 在整数的后面加上l或者L(如果超过int的范围 没有加l或者L那么则会报错‘过大的整数’)
long l = 10000000000; 会报错 long l = 10000000000L不会报错
而小数的默认类型是double 如果
Float f=1.2; 报错 因为默认是double是大类型的
从double 到float 会损失精度 会报错
不兼容的类型 要使这条代码成立则需要 在后加 f
Float f=1.2f则不会报错;
如果 是 double d=3.4;则不会报错;
基本数据类型的转换
-
byte short char 在做运算的时候 自动会提升为int
-
boolean类型不参与类型的转换
-
数据类型小的变量和数据类型大的变量在做运算的时候,自动提升为运算中最大的数据类型
例如byte b1 = 3; byte b2 = 4; byte b3 =(b1+b2);
//此时 是无法运行的 因为运行的时候自动转换成了int 但是后面却将int类型的值赋给b3(byte)类型 这样会提示错误:不兼容的类型,因为从int转换为 byte 的时候可能会有损失 因此 只有进行强制类型的转换之后 才能进行赋值
即
byte b3 =(byte)(b1+b2);
强制类型转换的时候注意的问题
有 byte b=(byte)128;
因为
byte只有八位,只能表示-128–127
此时
b的值为 -128 因为 128超过了byte 的最大的合法的数值范围,因此会从byte的另一段继续; 因此 赋值的时候应该在一定的范围赋值 不然 强制类型转换之后 变量的值已经发生了根本性质的改变
图片:
带尺寸的图片:
+号是做拼接还是运算的问题
- 当加号左右两侧有一侧是字符串那么加号充当的是字符串的拼接功能,拼接完成后生成新的字符串
System.out.println("hello"+'a'+1);//helloa1
System.out.println('a'+1+"hello");//98hello
System.out.println("5+5="+5+5);//5+5=55
System.out.println(5+5+"=5+5");//10=5+5
Java的除法运算 和 取模运算
除法运算取整数商; a=10; b=3; c=a/b;3
取模运算取余数; c=a%b;1
++运算
Int a=2;
Int b=++a; 若 b==a++;
a ==3; 则a==3
b ==3 b==2
也就是说 当 ++在变量的左边(前)(++a)就是先自增然后在赋值给式子 反之当++在变量的右边(后)(a++)那就是先赋值给式子再自增
居中并且带尺寸的图片:
算术运算符
- 正号
- 负号
- 加
- 减
*乘
/
%
++ 在前 在后
– 在前 在后
- 字符串的拼接
赋值运算符
符号: = 右边赋值给左边
扩展:
+= a=a+3
-= a=a-3
= a=a3
/= a=a/3
%= a=a%3
=是基本的赋值运算符 其他的是扩展的运算符号
扩展的赋值运算自带强制类型转换 ---------------特点
short s=1;
s=s+1;
这里就会因为类型的转换问题出错 但是
S+=1; 这样的书写格式自带强制类型转换 因此这样不会报错;
关系运算符
==
!=
<
>
<=
>=
Instanceof 检查是不是类的对象
逻辑运算符
&(与)有false则为false
|(或) 有true则为true
^(异或) 同性为false 异性 为true
!(非) 取反
&&(双and) 运算的结果和&是一样的额
||(双或) 运算的结果和|是一样的
&&
int a = 10;
int b = 20;
System.out.println(a > b && a < b);
如果第一个条件先为false 那么后面的式子不参见运算 但是 & 则会参加运算
System.out.println(a > b || a < b);//false | true true
如果第一个条件先为true 那么 后面的式子不参加运算 但是| 则会参加运算
以上就是 && 和& ,|| 和| 的区别
三目运算符
格式 (关系表达式)?表达式1:表达式2;
如果条件为true 那么运算后的结果是表达式1;
如果条件为false 那么运算后的记过是表达式2