Java基础
文章目录
一.强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后再写。
二.弱类型语言
- 就比强类型语言的使用要随意一些。
三.Java的两类数据类型
1.基本类型(primitive type):
-
给变量定义时需要注意变量的范围,每一个变量不能超过其字节范围。
-
字符串用String,String不是关键字,是一个类。
-
long类型要在数字后加个L(便于区分)
-
float类型要在后面加个F。
类型 | 范围 |
---|---|
byte | -128-127 |
short | -32768-32767+ |
int | -2147483648-2147483647 |
long | -9223372036854775808-922337203685477580 |
- 布尔值代表是非。
2.引用类型(reference type):
四.什么是字节?
字节是计算机信息技术用于计量存储容量的一种计量单位。
- 位(bit):是计算机内部数据储存的额最小单位,11001100就是一个8位二进制数。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写的B来表示。
- 1B=8bit
- 字符:是指计算机中使用的字母,数字,字和符号。
电脑的32位和64位的区别:32位的操作系统只能装32位的cpu,64位的可以装32位的也可以装64位的,并且32位的扩内存条只能扩到4GB大,64位的就大得多了。
五.数据类型扩展
1.整数扩展
八进制:0开头(逢8进一)
十六进制:0x开头(逢16进一)
输出结果:
2.浮点数扩展
这里大家注意看一下,a和b的值都是0.1,那为什么反馈出不相等?
输出结果:
这就涉及到精度问题了,float类型是单精度,而double双精度,并且float和double两个类型的值都是一个大约的值,float精度没有double精度那么大,小数部分0.1二进制表示被舍去的比较多。
所以:
-
程序中应尽量避免浮点数的比较。
-
float,double类型的运算往往都不准确。
解决方法:
使用BigDecimal提供的方法进行比较或运算,但要注意在构造BigDecimal的时候使用float、double的字符串形式构建,BigDecimal(String val);为什么不用BigDecimal(double val)API里写的比较清楚。
3.字符扩展
输出结果:
所有的字符本质还是数字!!!
4.布尔值扩展
很多新手都不知道if(flag){}到底是什么意思,其实这就与java里面的精简化有关了。(小编其实也是java的新手,但是呢,这个我在c里看多好多)
less is more!说的就是代码越精简越好。
六.类型转换:
-
由于java是强类型语言,所以要进行有些运算的时候的,需要 用到类型转换
低------------------------------------------------------>高
byte,short,char->int->long->float->double
-
运算中,不同类型的数据先转化为同一类型,然后进行运算
1.强制类型转换
强制转换是从低类型转换成高类型。(类型)变量名
内存溢出问题:
很多时候我们进行类型转换的时候一定要注意其类型的大小是否能够容纳,否则就会造成内存溢出的问题。比如:
这里明明应该输出两个128,为什么输出了一个-128呢?
这里的byte类型从上文可以得知,其大小范围是-127~127,而128就超出了其最大范围,所以这里就输出了不是原本的值。
精度问题:
值较大问题:
当我们计算的值较大时,如果不进行转换的话,那么这个值就会溢出。比如:
从这里的输出结果来看,我们用直接加long的方法根本不行,说明这个值时在转换前就已经存在问题了,所以我们就得将其中一个值转换成long类型,避免其默认类型为int类型。
注意:
1.不能对布尔值进行转换
2.不能把对象类型转换成不相干的类型
3.再把高容量转换得到低容量的时候,强制转换。
4.转换的时候可能存在内存溢出,或者精度问题。
2.自动类型转换
从高类向低类型转换时,不用加强制转换,系统则会自动进行转换。
七.变量(variate)和常量(Contant):
#####变量(variate):
变量就是可以变化的量。
java是一种强类型的语言,每个变量都必须声明其类型。
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName {=value} [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。
String M="1000";
这里的声明就和c语言里面的宏定义差不多。
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域
public class Variable
{
static int allClicks=0; //类变量
String str="hello world!"; //实例变量
public void method()
{
int i=0; //局部变量
}
}
1.类变量
在java中,类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”,用来修饰成员变量和成员方法。
2.实例变量
先在类里定义:
String name;
int age;
然后在main方法里面引用
Demo08 demo08=new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
从属于对象,类似于c语言中的结构体,如果不自行初始化,这个类型的默认值为0,布尔值默认为false。
除了基本类型,其余默认值为NULL。
3.局部变量
必须声明和初始化,只会在方法里面,有效期只在该方法里面。
常量(constant)
常量:初始化后不能再改变值!不会变动的值(宏定义的感觉)。
所谓常量可以理解成一种特殊的值,它的值被设定后,在程序中不允许被改变。
final 常量名=值;
final double PI =3.14;
######命名规范
- 所有变量,方法,类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man
- 方法名:首字母小写和驼峰原则
八.基本运算符
java语言支持的运算符
-
算术运算符:+,-,*,/,%(取余),++,–;
-
赋值运算符:=;
-
关系运算符:>,<,>=(大于等于),<=(小于等于),==(相等),!=instanceof(!=);
-
逻辑运算符:&&,||,!;
-
位运算符:&,|,^,~,>>,<<,>>>;
-
条件运算符:? :
-
扩展赋值运算符:+=,-=,*=,/=;
int a=10;
int b=20;
a+=b; //a=a+b
a-=b; //a=a-b
1.自增自减运算符
int a=3;
b=a++; //a++ =4;
//执行完这行代码,先给b赋值,再自增;
b=3;
c=++a;
//执行完这行代码,先自增,再给b赋值;
c=5;
2.Math类工具
当我们想要用到c里面的math时,不是在最上面加math的头文件,而是在代码中用类似架构体引用的方式:
//幂运算 2的3次方
double pow=Math.pow(2,3);
System.out.println(pow);
//开平方根 根号4;
double a=Math.sqrt(4);
System.out.println(a);
3.逻辑运算符
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(b&&a));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算:两个有一个为真,结果才为真
System.out.println("!(a && b):"+!(a&&b));//如果是真,则变为假,如果是假,变成真
输出:
a && b:false
a || b:true
!(a && b):true
4.字符串连接符
在+运算符两侧,只有有一方出现字符串类型(String类型),就会把另外一个操作数进行连接。
int a=10;
int b=20;
System.out.println(a+b); //输出30
System.out.println(""+a+b); //输出1020
System.out.println(a+b+""); //输出30
```
最后一个输出30,是因为第一个是在前面,第二个是在后面,所以,就先进行运算,再进行连接。
###### 5.三元运算符
```
//x ? y : z
//如果x==true,则结果为z
int sore=80;
String type = sore < 60?"不及格":"及格";
```
如果------否则----
就和c里面的if差不多,当然后面java也会有if语句,只是说这样的形式比较精简,便于理解。
####
九.包机制
-
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为
package pkg1[. pkg2[.pkg3...]];
-
一般利用公司域名倒置作为包名:com.baidu.www
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[.package2...].(classname|*);
十.JavaDoc
javadoc命令是用来生成自己API文档的
#####参数信息
- @author作者名
- @version版本号
- @since指明需要最早使用的JDk版本
- @param参数名
- @return返回值情况
- @异常抛出情况
使用IDEA生产JavaDoc文档
首先我们进入这个界面:
然后点击该项目右键打开到该文件夹:
这里点击Explorer
然后在地址前加(cmd )回车打开Doc命令界面(cmd后面要空一格)
然后进入界面后输入(javadoc -encoding UTF-8 -charset UTF-8 Doc.java)
然后该文件夹出现许多东西
打开index.html
点击Doc
就可以查看该文档了
- 对于Java来说,小编也是刚刚开始学习,写博客的目的只是为了让自己过一段时间还能再看,当然,更多的也是方便大家可以参考参考,如果什么地方有错的话,欢迎大家指正!
- 当然如果对你有帮助,请动动你的小手,留下你的爱心❤