注释不会被执行,是给写代码的人看的
书写注释是一个非常好的习惯
注释分为三种:
-
单行注释://后加文字
-
多行注释:/*中间加文字 */
-
文档注释:/** 中间 */
更改注释颜色
file-->settings-->java-->comments
// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// . ' \\| |// `.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '< `.___\_<|>_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
//
// .............................................
// 佛祖保佑 永无BUG
标识符和关键字
java所有的组成部分都需要名字。
类名,变量名,方法名都成为标识符。
标识符注意点
-
所有标识符都应该以字母,美元符($)或者下划线开头
-
首字母之后可以是字母,美元符($),下划线或者数字
-
不能使用关键字作为变量名或者方法名
-
标识符是大小写敏感的
-
合法标识符例举:age,$salary,_value
-
非法标识符例举:123abc,-salary,#abc
-
可以用中文,但不建议
数据类型
强类型语言
要求变量的使用严格符合规定,所有变量都必须先定义在使用
弱类型语言
对变量的使用规定比较随意,安全性更低,速度更快
Java的数据类型分为两大类
-
基本类型
-
整数类型:int,short,byte,long (long类型要在数字之后加L)
-
浮点数类型:float,double (float类型要在数字后加F)
-
字符类型:char
-
boolean类型:true或false
string字符串是类而不是关键字
-
-
引用类型
-
类
-
接口
-
数组
-
字节
-
位(bit):计算机内部数据储存的最小单位
-
字节(byte):是计算机储存的基本单位,用B来表示
-
1B=8bit
-
1024B=1KB,1024KB=1M,1024M=1G
数据类型扩展及面试题
整数拓展
-
二进制:0b
-
八进制:0
-
十六进制:0x
浮点数拓展
float f = 0.1f;
double d = 1.0/10;
f!=d;
float是有限的,结果是个大约数,接近但不等于
最好完全使用浮点数进行比较
BigDecimal-->数学工具类
银行业务要用此来表示
字符类拓展
char c1 = 'a';
char c2 = '中';
System.out.println((int)c1)
可以强制转换字符为数字
所有字符的本质还是数字
转义字符
System.out.println("Hello\nWorld");
布尔值扩展
boolean flag = true;
if(flag==true)
{
}
if(flag)
{
}
这两行代码的意思是完全一样的,代码要精简易读
类型转化
低--------------------------------------------------------------高
byte,short,char-->int-->long-->float-->double
-
运行中,不同类型的数据要先转换为同一类型然后运算
为什么呢?
Byte类最大值为127,内存溢出后就会出问题
转换时要注意避免内存溢出
-
强制转化
规则:(类型)变量名
-
自动转化
低-->高
int i=10;
double = i;
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转化为不相干的类型
-
大容量-->低容量要强制转换,反之自动转化
-
转换的时候可能存在内存溢出或者精度问题
-
JDK7新特性:数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;
long total2 = money*years;
System.out.println(total2);
//输出的结果值溢出,因为money和years都是int类型的值,所以total2默认为int型
//正确做法:
long = total3 = money*((long)years);
System.out.println(total3);
变量
-
变量是什么:就是可以变化的量!
-
java是一种强类型语言,每个变量都必须声明其类型。
-
要素包括变量名,变量类型和作用域
变量作用域
-
类变量
-
实例变量:从属于对象,相当于全局变量,不一定要赋初始值
布尔值初始值为false,string初始值为null
-
局部变量:在一个方法内使用,方法结束该变量就“死了”,必须赋初始值
变量的命名规范
-
所有变量,方法,类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
运算符
-
算数运算符:+,-,*,/,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!= instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符:?:
-
扩展赋值运算符:-=,+=,/=,*=
自增自减
++:自增
--:自减
int a=3;
int b=a++;
//a++等于a=a+1
//a++先赋值,在自增
int c=++a;
//++a先自增,在赋值
幂运算
2^3 = 2 * 2 * 2 =8
double pow=Math.pow(2,3)
pow = 2^3 =8
很多运算我们会使用工具操作
逻辑运算符
-
&& :与
-
|| :或
-
!:非
-
与运算-有假为假
-
或运算-有真为真
-
非运算-假为真,真为假
//短路运算
int c = 5;
boolean d =(c<4)&&(c++<3);
System.out.println(d);
System.out.println(c);
//输出d为false
//输出c为5
//在c<4这里已经错了,有假为假,此时后面的内容就不在执行,所以c的自增没有实行
位运算
A=0011 1100
B=0000 1101
A&B = 0000 1100(两个都是1则为1,否则为0)
A|B = 0011 1101 (两个都是0则为0,否则为1)
A^B = 0011 0001 (相同为0,不同为1)
~B = 1111 0010 (取反)
问:2 * 8怎么算最快
0000 0010 2
0000 1000 8
0001 0000 16
答:<<即为 *2,>>即为/2
字符串连接符 +
int a=10;
int b=20;
System.out.println(""+a+b);
//输出为1020
三元运算符
x ? y : z
如果x==true,则结果为y,否则结果为z
例:string type =score < 60?"不及格":"及格";
包机制
-
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
-
包语句的语法格式为:
package pkg1[. pkg2[. pkg3]]
-
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用“import”语句
import com.kuang.www.*;导入包里面全部
-
包的本质就是文件夹
JavaDoc
String name;
/**
*
* @param name
* @return
* @throws Exception
*/
public String test(String name)throws Exception
{
return name;
}

浙公网安备 33010602011771号