单行注释://
多行注释:/* * / 或command+/ (mac)
文档注释:
/**
*@Description HelloWord
*@Author
*/
强类型语言:java是一种强类型语言,要求变量使用严格符合规定,所有变量必须先定义才能使用。
优点:安全
缺点:慢,复杂
弱类型语言:javascript
基本类型(primitive type)
(**注意:都是小写)
整数类型:
浮点类型:
字符类型:
布尔类型:
long类型要在数字后加L,例:
long num1 = 10L;
float类型要在数字后加F,例:
folat num2 = 20.1F;
引用类型(reference type)
(==号基本类型比较的是值,引用类型比较的是地址)
float f = 0.1f;
double d = 1.0/10;
f和d比较结果是不相等
float d1 = 233333333f;
float d2 = d1+1;
d1和d2比较结果是相等
结论:不要使用float比较,因为浮点数会有舍入误差,银行业务等最好用BigDecimal比较
char c1 = 'a';
char c2 = '\u0061';
都是字符a,\为转义字符
String a = new String('Hi');
String b = new String('Hi');
String c = 'Hi';
String d = 'Hi';
a和b不相等,c和d相等
由于java是强类型语言,所以进行有些运算时,需要用到类型转换。
低—————————————————————>高
byte,short,char —> int —> long —>float —>double
小数优先级高于整数
高->低:强制转换。
低->高:自动转换。
内存溢出
int i =128;
byte b = (byte)i;
结果:i =128,b=-128。
原因是强制转换时内存溢出。
JDK7新特性:数字之间可以用下划线分割。
int a = 10_0000_0000; //仍然表示1000000000
int b = 20;
int total1=a*b;
long total2=a*b;
long total3=a*((long)b);
total1,total2的值均会出现异常,total3的值正常。
total1的原因是内存溢出,total2的原因是先内存溢出,后进行的类型转换。计算total3时,对b进行类型转换,将整个式子进行了提升,相乘结果为long类型。
java变量是程序中最基本的存储单元,包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}];
10
0
null
特殊的变量,初始化就不能改变,常量名一般使用大写
修饰符没有先后
final double PI = 3.14;
逻辑运算符:&&,||,!
取余/模运算:%
自增,自减(一元运算符):++,–
int a = 3;
int b = a++; //a = a + 1 执行完给b赋值,再自增
System.out.println(a); //4
int c = ++a; //执行完自增,再给c赋值
System.out.println(a); //5
System.out.println(b); //3
System.out.println(c); //5
基本运算后,结果类型会自动升型,如果运算因子有一个类型为long,则结果类型为long,如果两个运算因子类型为byte或short,结果类型为int。
double pow = Math.pow(2,3);
+号的应用
public class Demo06{
public static void main(String[] args){
int c=5;
int d=6;
System.out.println(""+c+d);
System.out.println(c+d+"");
}
}
输出为
56
11
这是由于""+在前面会默认把后面的数据当作字符串处理,c+d在前面会先运算两个整数相加。
?的用法
x ? y : z //如果x==true,则结果为y,否则结果为z
public class Demo07{
public static void main(String[] args){
int c=50;
int d=80;
string type1=c<60?"不及格":"及格";
string type2=d<60?"不及格":"及格";
System.out.println(type1);
System.out.println(type2);
}
}
输出:
不及格
及格
当逻辑运算符&&遇到第一个条件即为假时,直接返回结果为假。
public class Demo05{
public static void main(String[] args){
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
输出结果为:
false
5
这是因为c<4已为假,故d直接赋值false,c++<4未运行。
>> 相当于乘以2
<< 相当于除以2
优点是效率极高
2*8最快的运算方式:2>>3
本质就是文件夹
一般利用公司域名倒置作为包名
例:
//www.baidu.com --> com.baidu.www
package com.baidu.www;
package必须在最上面,import之类的都要在其下面
javadoc命令是用来自己生成api文档的
参数值:
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
javadoc -encoding UTF-8 -charset UTF-8 hello.java
学习来源:【狂神说Java】Java零基础学习视频通俗易懂
bilibili网址:https://www.bilibili.com/video/BV12J41137hu?p=1