java对大小写敏感!!!!
包名:
package:
1.全小写
2.公司的域名倒着写
包:为了找到包中定义的类
类名:标准的命名规范是类名以大写字母开头的名字,如果由多个单词组成,每个单词的第一个字母都应该大写(驼峰法)
java的任何方法的代码都是用“{”开始,用“}”结束
回车不是语句的结束标志,“;”分号才是结束的标志(python可以省略分号)空白符会被java编译器忽略~~~
System.out.print(); //使用了System.out对象调用了它的print方法。“.”用于调用方法。 java使用的通用语法是: object.method(parameters) 这等价于函数的调用
java的注释不会出现在可执行的程序中,不必担心可执行代码会膨胀
main方法是程序的入口
类:java开发中的最小单位,无论干什么都要定义一个类
标识符:
可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等。我们选择的名称就称为标识符,并且遵循以下规则:
1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符。
2.不能以数字开头。
3.标识符是严格区分大小写的。
4.标识符的命名最好能反映出其作用,做到见名知意。
关键字:
在java语言中已经被赋予特定意义的一些单词。一共有53个关键字。其中有两个保留字:const和goto。关键字不能被用作标识符!!
注释:
//单行注释
/* 多行注释 */
/** 文档注释 */
变量:
在JAVA中,有的数据值是不固定的,总在变,我们还需要记录这些值,我们可以把这些值理解为变量。
我们通过三个元素来描述变量:变量类型,变量名以及变量值。
int age=18; //声明int类型的变量并赋值
String tel; //声明String类型的变量
变量的使用原则:就近原则。尽量控制到最小范围。
变量名必须以字母开头的由字母或数字构成的序列。
可以在一行中声明多个变量,不提倡。
常量:
在程序运行过程中一直不会改变的量成为常量。
在java中希望某个经常可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以适用关键字static final 设置一个类常量
例如: public static final double CM_PER_INCH=2.4;
注意:常量定义在方法外部,因此同一个类的其他方法中也能使用这个常量,而且声明为public,那么其他的类的方法也能使用这个常量。
基本类型(八种):
java是强类型语言,必须为每一个变量声明类型!!!!
类型名称 | 字节空间 | 范围 | |
整数型 | byte | 1 | -27到27-1 或者 -128到127 |
short | 2 | -215到215-1 | |
int | 4 | -231到231-1 | |
long | 8 | -263到263-1 | |
浮点型 | float | 4 | 单精度,对小数部分的精度要求不高 |
double | 8 | 双精度,精确的小数部分并操作值很大时 | |
字符 | char | 2 | 0到65535 |
布尔 | boolean | 1 | 真true 假false |
java有一个能够表示任何精度的算术包,通常称为“大数值”(big number),它并不是一种java类型,而是一个java对象
double这种类型的数值是float类型的两倍(float单精度,double双精度)
重点:char类型~~ Unicode码,肯定有人说是ASCII码,反正我不深究
char类型用于表示单个字符,定义字符类型,只能存一个,中文也是只能存一个,还可以存整数(char用的是单引号!双引号是String)
char c1 = '0';
char c2 = 'a';
char c3 = '中';
char c4 = 98;
最终的结果就是一个字符!!!
局部变量:
定义在方法里,或者局部代码块中
注意:必须手动初始化,来分配内存。如:int i=5; 或者 int i; i=5;
作用域也就是方法里或者局部代码块里,方法运行完内存就释放了。
成员变量:
定义在类里,方法外。
注意:不用初始化,也会自动被初始化成默认值。
作用域是整个类中,类消失了,变量才释放。
初始值:
int 0
byte 0
short 0
long 0
float 0f
double 0
char /u000
boolean false
整数字面值是int类型:
int a = 999999999999999;//错,右侧超出int的取值范围
byte,short,char三种比int小的整数可以用范围内的值直接赋值:
byte b = 127;//对
byte b2 = 128;//错的,超出byte范围
浮点数的字面值是double类型:
float f = 3.0;//错,因为右侧默认是double是8字节,float是4字节,放不下的
字面值后缀LFD:
long a = 999999999999L;
float b = 3.0F;
double d = 3D;
进制前缀:
0b - 2进制 0b0011
0x - 16进制 数据包括:0-9 abcdef 0x897a
0 - 8进制 0435
\u - char类型,16进制
基本类型的类型转换:
小到大:
隐式转换:
byte a = 127;
int b = a;//拿到右侧的byte数据给左侧的int数据赋值,体现了从小到大的过程
大到小:
显式转换,需要强制类型转换:
int a = 30;
//拿到右侧的a是int类型,强制转化为short类型
short b = (short) a;
浮点数转成整数,小数直接舍弃:
double c = 3.14;
int d = (int) c;
System.out.println(d); //结果是3,无论小数是多少,没有四舍五入,直接舍去
运算规则:
计算结果的数据类型,与最大类型一致:
java运算符,当参与/运算的两个操作数都是整数的时候,表示整数除法;否者表示浮点数除法;
3/2 // 得到1 ,int/int 得到的结果还是int类型
3.0/2 //得到1.5,double/int 得到的结果是double类型
byte,short,char三种比int小的整数,运算时会先自动转换成int:
byte a = 1;
byte b = 2;
byte c = a+b;//错,右侧byte+byte会自动转成int,拿着int给byte赋值相当于大转小,需要强转
byte c = (byte)(a+b);//对
浮点数运算不精确:
1-0.8 // 0.19999999999999996
主要原因是浮点数值采用二进制系统表示,而二进制系统中无法精确的表示分数1/10。就好像十进制无法精确到1/3一样。如果需要在数值计算中不含任何误差,就应该使用BigDecimal类
浮点数的特殊值:
Infinity 无穷大 3.14/0
Nan not a number 0/0.0
运算符:
算术运算符 | + - * / | 基本运算 |
% | 取余数(模),常用于算整除 10%5==0 | |
++ -- | 自增 自减 | |
比较运算符 | == | 相等比较 1==2 false |
!= | 不等比较 1!=2 true | |
逻辑运算符 | && & | 逻辑与(短路与),两边同为真结果才为真 |
|| | | 逻辑或(短路或),两边只要有一个真结果就是真 | |
+ | 字符串连接 | |
! | 非,非真是假,非假是真 | |
三元运算符 | ?: | 三项运算 1?2:3 1是真取2,1是假取3 |
赋值运算符 | = | 赋值运算 |
+= -= *= /= | 复合的赋值运算 a+=2;//a=a+2 |
运算符有方向:赋值,三元运算符,!~ ++ -- + -()(强制类型转换)new 都是从又向左,其他的都是从左向又。
|:1和2有一个为true,结果就是true
||:短路或,1是true时2被短路
&:1和2都为true,结果就是true
&&:短路与,1是false时2被短路
&&的优先级高于||
三元云算符:
condition ? expression1 : expression2
当条件condition为真时计算第一个表达式,否则计算第二个表达式
例如: x < y ? x : y;
返回x和y中较小的值。
位运算符:
&与 |或 ^异或 ~非
>> << :运算符将二进制位进行右移或左移操作
>>>运算符将用0填充高位,>>运算符用符号填充高位。没有<<<运算符
1<<3 : 8
自增自减:
++在后,先取值后自增
++在前,先自增后取值
--的定义与++相同
记得当年有一道题是这么写的 : int a = 5; a = a+(a++)+(++a); // 当年算错了,还满脑袋问号~~~~
例如:
int n = 12;
n++;
n的值将变为13。因为这些运算符改变了变量的值,所以它的操作数不能是数值,4++就是一条非法语句。
特殊字符的转义序列符:
\b 退格
\t 制表
\n 换行
\r 回车
\" 双引号
\‘ 单引号
\\ 反斜杠
在java.lang包中有String.split()方法,返回是一个数组
1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
如果不加\\ :java.lang.ArrayIndexOutOfBoundsException