小白艰苦学习之路(记录学习历程——Java篇)Day3
Posted 花子柒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白艰苦学习之路(记录学习历程——Java篇)Day3相关的知识,希望对你有一定的参考价值。
Day3
数据类型扩展及面试题讲解
整数拓展
public class Test1
public static void main(String[] args)
//进制:二进制0b 十进制 八进制0 十六进制0x
int i1 = 0b1010;//二进制
int i2 = 100;
int i3 = 010;//八进制
int i4 = 0x10;//十六进制
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
运行结果图
浮点数拓展
public class Test1
public static void main(String[] args)
//浮点数 银行业务如何表示
//BigDecimal 数学工具类 完成
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f = 0.1f;
double d = 0.1;
System.out.println(f==d);//false
float f1 = 11111111111111f;
double d1 = f1 + 1;
System.out.println(f1==d1);//true
注:最好完全避免使用浮点数进行比较
运行结果图
字符拓展
public class Test1
public static void main(String[] args)
char c1 = 'A';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
//编码 Unicode 表 2字节 65536 Excle:2 16 = 65536
char c3 = '\\u0061';
System.out.println(c3);//a
注:所有的字符本质还是数字
运行结果图
转义字符
public class Test1
public static void main(String[] args)
//转义字符
// \\t 制表符
// \\n换行符
System.out.println("Hello\\tWorld");
System.out.println("Hello\\nWorld");
运行结果图
布尔值扩展(新手老手的区别)
//布尔值扩展
boolean flag = true;
if(flag==true)//新手
if (flag)//老手
类型转换
-
Java是强类型语言,所以在进行某些运算的时候,需要用到类型转换
低------------------------------------------------------------>高
byte,short,char—>int—>long—>float—>double
-
运算中,不同类型的数据类型先转化为同一类型,然后进行运算
-
强制类型转换
public class Test2 public static void main(String[] args) //强制类型转换 (类型)变量名 高—>低 int i = 128; byte b = (byte)i;//内存溢出 System.out.println(b);
-
自动类型转换
public class Test2 public static void main(String[] args) //自动类型转换 低—>高 double d = i; System.out.println(d);
运行结果图
注意点:
-
不能对布尔值进行转换
-
不能吧对象类型转换为不相干类型
-
在把大高容量转换为低容量时,强制转换
-
转换的时候可能存在内存溢出,或精度问题
操作比较大的数时,注意溢出问题
public class Test3
public static void main(String[] args)
//操作比较大的数时,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
//int total = money*years;//-1474836480,计算的时候溢出了
//long total = money*years;//默认是int,转换之前已经存在问题了
long total = money*((long)years);
System.out.println(total);
变量
-
变量:可以变化的量
-
Java是一种强制类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [,varName[=value]]; //数据类型 变量名 = 值;可以用都好隔开来声明多个同类型变量
-
注意事项:
-
每个变量都有类型,类型可以为基本类型,也可以为引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声声慢都必须以分号结束
-
变量作用域
-
类变量
-
实例变量
-
局部变量
注:
-
实例变量:从属于对象,如若不初始化,则会变成这个类型的默认值
-
基本类型 默认值为:0 0.0
-
布尔值 默认值为:false
-
除了基本类型其余都为null
-
局部变量:必须声明和初始化值
-
类变量 :static 从属于这个类,随着类出现,随着类消失
public class Test4
//类变量 static 从属于这个类,随着类出现,随着类消失
static double salary = 2500;
//属性:变量
//实例变量 从属于对象,如若不初始化,则会变成这个类型的默认值
//基本类型 默认值为:0 0.0
//布尔值 默认值为:false
//除了基本类型其余都为null
String name;
int age;
// main方法
public static void main(String[] args)
//局部变量 必须声明和初始化值
int i = 10;
System.out.println(i);
new Test4();
Test4 test4 = new Test4();//变量类型 变量名 = new Test4();
System.out.println(test4.age);
System.out.println(test4.name);
//类变量 static
System.out.println(salary);
//其他方法
public void add()
常量
-
常量(Constant):初始化(initialize)后不能再改变值,不会变动的值
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中,不允许被改变
final 常量名 = 值;
final double PI = 3.14;
-
常量名一般使用大写字符
public class Test5
//修饰符 不存在先后顺序 static和final不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args)
System.out.println(PI);
变量的命名规范
运算符
二元运算符
public class Test6
public static void main(String[] args)
//二元运算符
//Ctrl+D 复制当前行到下一行
int a = 10;
int b = 10;
int c = 10;
int d = 10;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
【几个基本类型相加,有long则输出为long,有double则输出为double】
package base;
public class Test7
public static void main(String[] args)
long a = 12312252233L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
关系运算符
public class Test8
public static void main(String[] args)
//关系运算符返回的结果:正确/错误 结果为布尔值
int a = 10;
int b = 20;
int c = 21;
System.out.println(c%b);
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
自增自减运算符、初识Math类
自增:++
int a = 3;
int b = a++;//先给b赋值,再自增
int a = 3;
int b = ++a;//先自增,再给b赋值
自减:--(与自增一致)
幂运算(很多运算,我们会使用一些工具类进行操作)
double pow = Math.pow(2,3);//2^3
逻辑运算符
public class test1
public static void main(String[] args)
//逻辑运算
//与或非
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b));//逻辑与运算:同真为真
System.out.println("a || b:"+(a||b));//逻辑或运算:一真为真
System.out.println("a && b:"+!(a&&b));//逻辑非运算:真假相反
//短路运算
int c = 4;
boolean d = (c<5)&&(c++<4);
System.out.println(c);
System.out.println(d);
运行结果图
位运算符
与或非
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 //与运算:相同保留,不同为0
A|B = 0011 1101 //或运算:相同保留,有1为1
A^B = 0011 0001 //异或运算:相同为0,不同为1
~B = 1111 0011 //非运算:与运算取反
左移右移
<< >>
-
<< *2
-
>> /2
扩展运算符
int a = 20;
a+=b;//a = a+b
a-=b;//a = a-b
字符串连接符 +
int a = 10;
int b = 20;
//若出现字符串在前,则后面的数会被变成字符串进行拼接,若字符串在后,则不会变成字符串进行拼接
System.out.println(""+a+b);//输出为:1020
System.out.println(a+b+"");//输出为:30
三元运算符
x ? y : z
如果x==true,则结果为y,否则为z
public class Test2
public static void main(String[] args)
int score = 50;
String type = score < 60 ? "不及格" : "及格";//必须掌握
System.out.println(type);
运行结果图
优先级 ()
包机制
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
-
包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
-
一般利用公司域名倒置作为包名 eg:com.Hua.operator
-
为了能使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句即可完成
import package1[.package2...].(classname|*); //import com.Hua.*; 导入所有的
【推荐:阿里巴巴开发手册】
JavaDoc生成文档
如何使用IDEA生成Doc文档
-
在IDEA中打开如下目录
-
在这里选择创建Doc文档的文件夹位置
-
在Local行和编码集写下如下代码,即可设置为中文且防止了中文带来的乱码
-
击"ok"后IDEA便会自动生成JavaDoc文档
以上是关于小白艰苦学习之路(记录学习历程——Java篇)Day3的主要内容,如果未能解决你的问题,请参考以下文章