1.IDE使用
IDE(Integrated Development Environment )集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
2.注释
- //:用于单行注释, 快捷键ctrl+/。
- /* */:用于多行注释,快捷键ctrl+shift+/ ctrl+shift+\ 取消注释。
- /** */:文档注释,用于为类,方法(函数),属性 功能进行说明,可在调用时提示。
3.关键字
- 特点:关键字所有字母都为小写
- 用于定义数据类型的关键字:
class interface enum byte short int
long float double char boolean void - 用于定义数据类型值的关键字:
true false null - 用于定义流程控制的关键字:
if else switch case default while
do for break continue return - 用于定义访问权限修饰符的关键字:
private protected public - 用于定义类,函数,变量修饰符的关键字:
abstract final static synchronized - 用于定义类与类之间关系的关键字:
extends implements - 用于定义建立实例及引用实例,判断实例的关键字:
new this super instanceof - 用于异常处理的关键字:
try catch finally throw throws - 用于包的关键字:
package import - 其他修饰符关键字:
native strictfp transient volatile assert
- 用于定义数据类型的关键字:
4.标识符
- 标识符: Java 对各种变量、方法和类等要素命名时使用的字符序列称 为标识符.
- 定义合法标识符规则:
①由26个英文字母大小写,0-9 ,_或 $ 组成数字不可以开头。
②不可以使用关键字和保留字,但能包含关键字和保留字。
③Java中严格区分大小写,长度无限制。
④标识符不能包含空格。 - Java中的名称命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz。
类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz。
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz。
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ。
5.Java变量
- 每一个变量使用前必须要先声明,然后赋值。
- 本质上,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用.
- 变量是通过使用变量名来访问这块区域的.
其要素包括变量名,变量类型。
Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:
[修饰符] type varName [=value][,varName[=value]……];
例如:
int i = 100;
int i1, i2, i3 = 10;
String s = "hello";
6.Java数据类型
数据类型
- 基本数据类型
- 数值型
- 整数类型:byte,short,int,long
- 浮点类型:float,double
- 字符型:char
- 布尔型:boolean
- 数值型
- 引用数据类型
- 类:class
- 接口:interface
- 数组:[]
7.Java基本数据类型
- 整数类型
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节 | -128 ~ 127 |
short | 2字节 | -2^15 ~ 2^(15-1) |
int | 4字节 | -2^31 ~ 2^(31-1) |
long | 8字节 | -2^63 ~ 2^(63-1) |
- Java语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ 。
如:
int i1 = 600; //正确
long l1 = 8888888888L; //必须加l或L否则会出错
- 浮点类型
- float 4字节
- double 8字节
- 字符串:char 2字节
- 字符型char char 型数据用来表示一个单个字符。
- 用单引号括起来。
- 例如:
char c1 = 'a';
- 在JAVA中,对char类型字符运行时,直接当做对应编码表的整数来对待。
char c=‘a’+1;
先将’a’提升为int,计算结果98,对应的字符是b。
- boolean:用于判断true或者false。
- boolean 类型适于逻辑运算,一般用于程序流程控制 。
- 注意:不可以0或非 0 的整数替代false和true,这点和C语言不同。
8.基本数据类型转换
- java中可以从任意基本类型转型到另外的基本类型 容量小的默认转换为容量大的数据类型。
- 例外 : boolean 类型不可以转换为其他的数据类型。
- 转换分为默认转换(容量小的转换为容量大的类型)和强制转换(容量大的转换为容量小的类型)。
- 默认转换 :整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以 下原则:容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排序为: byte-short-char–>int–>long–>float–>double。
- 强制转换:byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型。
- 容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;
- 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。
- long类型与float类型的大小——在内存中占用的是4个字节的空间,而long型占用的是8个字节的空间。可是为 什么4个字节的float型的最大值会大于long型的最大值呢?
答:long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平分正负,数值范围是负2的63次方到正2的63次方-1。
而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:V=(-1)^S * M * 2^E。
浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。
其中第1位,符号位,即S。
接下来的8位,指数域,即E。
剩下的23位,小数域,即M。
浮点数在内存中的二进制值不是直接转换为十进制数值的,而是 按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却 比长整型的最大值要大。
9.运算符
9.1算数运算符
/*
算术运算符 + - * / % ++ --
*/
public class test1 {
public static void main(String[] args) {
int a=10;
int b=5;
char c='d';
String d = "100";
String e = "aa";
System.out.println(a+b);
System.out.println(a+c);//整数+char(int)
System.out.println(a+b+d);//数值+(连接)字符串==字符串
System.out.println(d+e);//字符串+字符串=字符串
System.out.println(a-b);
System.out.println(a-c);
/* System.out.println(a-d);*/
int x=5;
int y=x++;
int z=++b;
System.out.println(x); //6
System.out.println(y); //5
System.out.println(z); //6
}
}
9.2比较运算符
运算符 | 运算 | 例子 | 结果 |
---|---|---|---|
== | 相等于 | 1==2 | false |
!= | 不等于 | 1!=2 | true |
< | 小于 | 1<2 | true |
> | 大于 | 1>2 | false |
<= | 小于等于 | 1<=2 | true |
>= | 大于等于 | 1>=2 | false |
instanceof | 检测是否为类的对象 | “hello” instanceof String | true |
public static void main(String[] args) {
int a = 10;
int b = 5;
boolean c = true;
boolean d = false;
String e = "abc";
String f = "efg";
System.out.println(a == b);
System.out.println(c == d);
System.out.println(e == f);
System.out.println(a != b);
System.out.println(c != d);
System.out.println(e != f);
//Object 类型可以表示任何类型
Object x = 10;
System.out.println(x instanceof Integer);
}
9.3逻辑运算符
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = 6;
int d = 20;
//& 左右都为true 结果为true 遇到第一个false时,后面的表达式继续执行
System.out.println(a>b&b<c);//true & true = true
System.out.println(a>b&b>c);//true & false = false
System.out.println(a<b&b>c);//false & false = false
//&&左右都为true 结果为true 遇到第一个false时,就发生短路,后面的表达式就不在执行了
System.out.println(a>b&&b<c);//true && true = true
System.out.println(a>b&&b>c);//true && false = false
System.out.println(a<b&&++b>c);//false && false = false
//| 只要有一为true 结果为true
System.out.println(a>b|b<c);//true | true = true
System.out.println(a>b|b>c);//true | false = true
System.out.println(a<b|b>c);//false | false = false
//||只要有一为true 结果为true 只要遇到第一个true 后面的表达式就不行了
System.out.println(a>b||b<c);//true || true = true
System.out.println(a>b||++b>c);//true || false = true
System.out.println(a<b||b>c);//false || false = false
// !是非运算
System.out.println(!(a>b))