01Java里的注释
- 单行注释 //
- javadoc 文档注释 / */
- 注释(书写注释是一个非常好的习惯)
02 02java基础 标识符
- java所有的组成部分都需要名字,类名、变量名以及方法名都被称为标识符
03 数据类型
01强数据类型
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
02Java数据乐星分为两大类
- 基本类型
- 整数类型
- byte
- short
- int
- long long num = 40L long类型要再数字后面加个L
- 小数
- float float num1 = 50.1F float 类型要在数字后面加个F
- double
- 字符
- char
- 布尔值:是非
- true
- false
- 整数类型
- 引用类型
- 类
- 接口
- 数组
04数据类型扩展及面试题讲解
- 整数扩展(进制)
- 二进制0b
- 八进制0
- 十进制
- 十六进制0x 0~9,A~F,
- 浮点数扩展 银行业务怎么表示? 钱
- float 有限 离散 舍入误差 大约 接近但不等于 最好完全避免使用浮点数进行比较!
- BigDecimal 数学工具类( 银行业务)
- 字符扩展
char c1 ='a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//sout
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
//编码Unicode 表:(97 = a 65 = A) 0-65536 2的16次方
- 转义字符
- 制表符
- 换行
- 对象内存分析
//对象 从内存分析
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);==比较的是地址。如果比较的对象是基本数据类型,则比较的是数值是否一致。如果比较的是引用数据类型,则比较的是对象类型的地址是否一致。
String是引用类型的变量。new是新建一个内存堆,新的地址,比较的是指向内存地址是否相同。第二个是常量池中,比较的是内容是否一致。
- 布尔值写法
//布尔值拓展
boolean flag = true;
if (flag==true){}//新手
if (flag){}//老手
05类型转换
- 由于Java是强类型语言,所以有些运算需要进行类型转换。
低-------------高
byte,short,char-> int -> long -> float -> double
- 运算中,不同类型的数据先转化为同一类型,然后进行运算。
package base;
public class Demo5 {
public static void main(String[] args) {
int i =128;
byte b = (byte)i;//byte的区间是-128-127 ,超过范围就随机赋值
System.out.println(i);
System.out.println(b);
//强制转换 (类型)变量名 高--低
//自动转换 低--高
int ii =128;
double bb = ii;
System.out.println(ii);
System.out.println(bb);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出或精度问题
*/
System.out.println("===========");
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//45
System.out.println("===========");
char c = 'a';
int d = c+1;
System.out.println(d);
}
}
package base;
public class Demo6 {
public static void main(String[] args) {
// 操作比较大的数的时候,注意溢出问题
//jdk新特性,数字之间可以用下划线分隔
int money = 10_0000_0000;
int years = 20;
int total = money*years;//-,结果本应该是200_0000_0000,计算的时候已经溢出了。
long total2 = money*years;//-,默认是int类型,转换之前已经存在问题了
long total3 = money*((long)years);//先把一个数先转为long
System.out.println(total);
System.out.println(total2);
System.out.println(total3);
}
}
06变量、常量、作用域
1.变量
- 变量:就是可以变化的量。
- java是一种强类型的语言,每个变量都必须声明其类型。
- java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
- type varName [=value] [{, varName[=value]}];
- //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量(但是最好不要在一行写多个变量,不具有良好的可读性。)
package base;
public class Demo7 {
public static void main(String[] args) {
//int a,b,c
int a=1,b=2,c=3;//写在一行,可读性低。
String name = "ysl";//引用类型
char x = 'x';
double pi = 3.14;
}
}
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
2.变量作用域
- 类变量
- 实例变量
- 局部变量
public class Demo08 {
//类变量 static
static double salary = 2500;
//属性:变量
//实例变量:从属于对象;如果不自行初始化,这个类型的默认值0 0.0
//布尔值:默认false
//除了基本类型,其余的默认值都是null
String name;
int age;
//主程序方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值(只能在这个括号里使用。)
int i =10;
System.out.println(i);
//变量类型 变量名字 = new Demo08();
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
//类变量 static 可以直接使用
System.out.println(salary);
}
//其他方法
public void add(){
}
}
3.常量
- 常量(Constant):初始化后不能再改变值,不会变动的值。
- 所谓常量可以理解为一种特殊的变量,它的值被设定后,再程序运行过程中不允许被改变。
- final 常量名 = 值;
final double PI = 3.14;
- 常量名一般使用大写字符。
package base;
public class Demo09 {
//修饰符,不存在先后顺序,还有public,private
static final double P = 3.14;
public static void main(String[] args) {
System.out.println(P);
}
}
4.变量的命名规范
- 所有变量/方法/类名:见名知意
驼峰原则:除了第一个单词除外,后面的单词首字母大写,如:lastName
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
07运算符
1.java语言支持如下运算符:
- 算数运算符:+, -, *, /, %, ++, --
package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 //Ctrl+D 复制当前行到下一行 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b); //a/b为int类型,结果为0.5,向下取整但是最后出来为0; //因此要提前把一个数换类型。 } }
package operator; public class Demo02 { public static void main(String[] args) { long a = 3123L; int b = 123; short c = 10; byte d = 8; //没有long,运算都为int //不同类型混合运算无论是赋值还是运算都是向最高位转 System.out.println(a+b+c+d);//Long System.out.println(b+c+d);//int //System.out.println((String)(c+d)); //int//Inconvertible types; cannot cast 'int' to 'java.lang.String' System.out.println((double)c+d); } } / 答案: 3264 141 18 18.0 */
package operator; //自增,自减 public class Demo04 { public static void main(String[] args) { //++, -- 自增,自减,一元运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 //a = a+1; System.out.println("a=:"+a); System.out.println("======="); //a = a+1; int c = ++a;//执行完这行代码前,先自增,再给c赋值 System.out.println("a=:"+a); System.out.println("b=:"+b); System.out.println("c=:"+c); //幂运算 很多运算使用工具类 double pow = Math.pow(2,3); System.out.println(pow); } }
- 赋值运算符:=
- 关系运算符:>,<,>=, <=,==,!=instanceof
package operator; public class Demo3 { public static void main(String[] args) { //关系运算符返回的结果:正确,错误 布尔值 //if int a = 10; int b = 20; int c = 21; //取余 System.out.println(c%a);// c/a 21/10 =2...1 System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); } } / 答案: 1 false true false true */
- 逻辑运算符:&&,||,!
package operator; //逻辑运算符 public class Demo05 { public static void main(String[] args) { //与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a&&b:"+(b&&a));//逻辑与运算:两个变量都为真,结果才为真 System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果为true System.out.println("!(a&&b):"+!(a&&b));//如果是真,则变为假,如果为假,则变为真。 //短路运算 第一个是flase 就不会进行下一个了。 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }
- 位运算符:&,|,^, ~, >>,<<,>>>(了解!!!)
package operator; public class Demo06 { public static void main(String[] args) { /* A = 0011 1100 B = 0000 1101 --------------- A&B = 0000 1100(如果两个都为1,结果为1) A/B = 0011 1101(对应位都是0结果为0,不然为1) A^B = 0011 0001 (对应位置相同就为0,不同就为1) ~B = 1111 0010(与本身完全相反) 2*8=16怎么运算最快 2*2*2*2 效率极高 << *2 左移 >> /2 右移 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0001 0000 16 */ } }
- 条件运算符: ?:
package operator; //三元运算符 public class Demo08 { public static void main(String[] args) { //x ? y:z //如果 x==true,则结果为y,否则为z int score = 80; //if String type = score <60? "bu及格":"及格"; } }
- 扩展赋值运算符:+=,-=,*=,/=
package operator; public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b;//a=a+b a-=b;//a=a-b System.out.println(a); //面试题字符串连接符 + , String System.out.println(""+a+b); System.out.println(a+b+"");//只要不是在最末尾,都会把其余转化成String } }
2.优先级
- 算术运算符、赋值运算符、逻辑运算符、关系运算符等基础运算符,并且在书写赋值语句时都没添加圆括号,显然是默认了先完成算术、逻辑、关系等运算,最后才进行赋值操作。
- 算术运算符内部各符号的优先级顺序依次为:+正号、-负号 > 乘号*、除号/、取余数符号% > 加号+、减号-。
- 关系运算符,关系符号包括等号、不等号、大于号、小于号等等,它们互相之间的优先级是一样的。
- 逻辑运算最终的优先级顺序为:逻辑非运算! > 关系运算符(含等号、不等号) > 其它逻辑运算符(含与符号&、或符号|、异或符号^)
- 总结:总结一下,倘若没有圆括号加以约束,那么对于数值变量来说,几种运算符的优先级顺序依次为:正号、负号 > 乘号、除号、取余号 > 加号、减号 > 大于号、等号、小于号、不等号 > 各种赋值符号;对于布尔变量来说,相关运算符的优先级顺序依次为:逻辑非 > 等号、不等号 > 逻辑与、或、异或 > 各种赋值符号。
https://www.cnblogs.com/pinlantu/p/9853493.html
08包机制
1.包
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
2.包语句的语法格式为:
- package pkg1[ .pkg2[. pkg3...]];
- 一般利用公司域名倒置作为包名;com.baidu.com
- 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可以完成此功能。
import package1.[.package2...].(classname|*);
eg.
import com.kuang.base.*;(导入这个包的所有类)
09JavaDoc
javadoc命令是用来生成自己的API文档的
- 参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
package base; / * @author ysl * @version 1.0 * @since 1.8 */ public class Doc { String name; / * * @param name * @return * @throws Exception */ public String test(String name)throws Exception { return name; } //kuangshen 是通过命令行 javadoc 参数 Java文件 //作业:学会查找使用IDEA生产JavaDoc文档! 面向百度编程 }
- IDLE上操作进行生成dos文档
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/2435.html