Day05.Java基础
注释
-
单行注释:// 只能注释一行文字
修改注释颜色:File->Setting->Editor->Color Scheme->Java->Comment(注释) 修改颜色 Bold粗体 italic斜体->Apply
-
多行注释 / 注释*/* 可以注释一段文字
/*我是多行注释
我是多行注释*/
- JavaDos:文档注释 格式:/** 注释 */ : /**+回车则会出现
/**
* @Description HelloWorld
* @Author 小明
*/
标识符
数据类型
public class Demo02 {
public static void main(String[] args) {
String a="hello";
int num=10;
System.out.println(a);
System.out.println(num);
}
}
//八大基本数据类型
//整数
int num1=10;//最常用
byte num2=15;
short num3=20;
long num4=123456L;//Long类型要在数字后面加个L
//小数:浮点数
float num5=10.7F;//float类型要在数字后面加个F
double num6=3.141592653589793;
//字符
char name ='A'; //单引号里面只能是一个字,因为字符只是一个字
char name1 ='天';
//字符串,String不是关键字,它是一个类
//String name3="小明";
//布尔值:代表 是 非
boolean flag =true;
//boolean flag = false;
数据类型拓展及面试题讲解
public class Demo03 {
public static void main(String[] args) {
// 整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制0x 0~9相当于A~F F相当于16
int q=0x11;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(q);
System.out.println("==================================================================");
//=========================================================================================
//浮点数拓展 银行业务怎么表示 钱
//用BigDecimal表示 它是一个数学工具类
//=========================================================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f=0.1f;
double d=1.0/10;
System.out.println(f==d); //用“==”表示判断两个是否相等 false!!
System.out.println(f);
System.out.println(d);
float d1=3232323231313323f;
float d2=d1+1;
System.out.println(d1==d2); //true
//=========================================================================================
//字符串拓展
//=========================================================================================
char c1='a';
char c2='中';
System.out.println("==================================================================");
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
//编码:Unicode编码 为一个表 如:97=a,65=A 占2字节 最多可以表示0~65536个字符 早些年用excel长度 最长有二的十六次方=65536
//U0000~UFFFF
char c3='\u0061';
System.out.println(c3);//a
//转义字符
// \t :制表符(中间多了个空格)
// \n :换行
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
System.out.println("==================================================================");
String sa=new String("hello world");
String sb=new String("hello world");
System.out.println(sa==sb);//false
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd);//true
//对象 从内存分析
//布尔类型拓展
boolean flag=true;
if (flag==true){} //新手
if (flag){} //老手
//Less is More. 代码要精简易读!
}
}
类型转换
public class Demo05 {
public static void main(String[] args) {
//强制转换: (类型)变量名 高-->低
int i=128;
byte b=(byte) i;//内存溢出
System.out.println(i);
System.out.println(b);
//自动转换: 低-->高
int i1=128;
double b1= i;
System.out.println(i1);
System.out.println(b1);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转化到低容量的时候,强制转换
4.转换的时候可能存在溢出,或精度问题!
*/
System.out.println("====================");
System.out.println((int)45.7);//45
System.out.println((int) 68.99f);//68
System.out.println("====================");
char c='A';
int s=c+1;
System.out.println(s);//66
System.out.println((char) s);//B
}
}
public class Demo06 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
System.out.println(money);
int years=20;
int total=years*money;
System.out.println(total);//-1474836480 ,计算的时候溢出了
long total2=years*money;
System.out.println(total2);//-1474836480 ,默认是int,转换之前已经出问题了
long total3=money*(long)years;//先把任意一个数转化为long
System.out.println(total3);
// 注意L 与 l的区别,数据类型Long的数字后面规范化加L
}
}
变量
public class Demo07 {
public static void main(String[] args) {
// int a,b,c;
//int a=1,b=2,c=3; //程序可读性弱
String name="xiaoming";
char x='X';
double pi=3.14;
}
}
变量作用域
说明:类变量:写在类里面的,需要加一个关键词static
实例变量:写在类中间,与类变量差不多,没有关键词static,在方法的外面类的里面
局部变量:写在方法里面,在方法里边
public class Demo08 { //类变量:加一个关键词static static double salary=2500; //属性:变量 /*实例变量:从属于对象;如果不进行初始化,则该变量会具有一个默认值, 所有的数值类型初始值为0或0.0,字符串变量初始化默认值为 u0000 布尔类型:默认是false 除了基本类型,其余的默认值都是null */ String name; int age; //main方法 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(){ System.out.println(); } //方法块 static{ }}
常量
public class Demo09 { //修饰符(变量类型前面都是修饰符),不存在先后顺序 static final double PI=3.14; //也可以写成 final static double PI=3.14; public static void main(String[] args) { System.out.println(PI); }}
变量的命名规范
运算符
package operator;public class Demo03 { 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);" }}="" ```="" ##="" 自增与自减、幂运算="" ```java="" package="" operator;public="" class="" demo04="" {="" public="" static="" void="" main(string[]="" args)="" ++,--="" 自增,自减="" 一元运算符="" int="" a="3;" b="a++;" 执行完这行代码后,先给b赋值,再自增="" +="" 1="" system.out.println(a);="" c="++a;//执行这行代码前,先自增,再给b赋值" system.out.println(b);="" system.out.println(c);="" 幂运算="" 2^3="2*2*2" =="" 8="" 很多运算,我们会使用一些工具类来操作!="" double="" pow="Math.pow(2,3);" system.out.println(pow);="" 逻辑运算符、位运算符="" demo05="" 与(and)="" 或(or)="" 非(取反)="" boolean="" system.out.println("a&&b:"+(a&&b));="" 逻辑与运算:两个变量都为真,结果才为true="" system.out.println("a||b:"+(a||b));="" 逻辑或运算:两个变量有一个为真,结果才为true="" system.out.println("!(a&&b):"+!(a&&b));="" 如果是真,则变为假,如果是假则为真="" 短路运算="" d="(c<4)&&(c++<4);//前面的c<4,已经为假,所以后面的c++则不会被执行" system.out.println(d);="" false="" 5="" demo06="" *="" 位运算="" 1100="" 1101="" --------------------------------------="" a&b="0000" a|b="0011" a^b="0011" 0001="" 异或:相同则为0,否则为1="" ~b="1111" 0010="" ——————————————————————————————————————————————————————="" 位运算效率极高!!!="" 关于位运算的面试题:2*8怎么运算最快?="" 2*2*2*2="" <<="" 左移:左移一位相当于="" *2一次="">> 右移:右移一位相当于 /2一次 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 8000 8 0001 0000 16 */ System.out.println(2<<3); //16:相当于上面的 0000 0010 中的1向左边移了三位 }}
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类型,则会把其他操作数都转换成String类型后,再连接 System.out.println(""+a+b); //1020 如果String在前面,则进行拼接 System.out.println(a+b+""); //30 如果String在后面,则它前面的依旧进行运算 }}
package operator; //三元运算符public class Demo08 { public static void main(String[] args) { /* x ? y : z 如果x == true,则结果为y,否则结果为z */ int score = 80; String type = score < 60 ? "不及格" : "及格"; //必须掌握 //if System.out.println(type); }}
包机制
出现错误时的导包操作:Alt + Enter
导入包中的类:
import com.kuang.base.Demo01;
导入包中的所有的类:
import com.kuang.base.*;
JavaDoc
用命令行生成javadoc:①进入类的文件夹位置:类名处右键->Show in Explorer->进入命令控制窗口
②:输入javadoc -encoding UTF-8 -charset UTF-8 Doc.java
③返回该类的文件夹下面会发现出现很多东西,找到并点击index.html ,即可找到该类的JavaDoc
package com.kuang.base;/** * @author kuangshen * @version 1.0 //前面的这段注释是加在Doc类上面的 * @since 1.8 */public class Doc { String name;// 类变量(属性) /** * * @param name //para(参数) //方法的注释 * @return */ public String rest(String name){ //方法 return name; } /** * @author kuangshen * @param name //方法的注释 * @return * @throws Exception */ public String test(String name)throws Exception{ return name; } //通过命令行实现JavaDoc:命令格式为 JavaDoc 参数 Java文件 //作业:学会查找使用IDEA生成JavaDoc文档!面向百度编程!}
</b);>

浙公网安备 33010602011771号