代码写的多的时候,我们就需要注释。放止遗忘,便于理解。
注释并不会执行
注释是一个非常好的习惯
平时书写代码一定要注意规范
单行注释:// 开头
多行注释:/* */
文档注释:/** */
//单行注释
//输出“Hello,World
//多行注释
/*123
4143
1423
3213
*/
//JavaDoc:文档注释 /** */
/**
* @Description HelloWorld
* @Author 狂神说
*/
有趣的代码注释
不能用关键字代表变量
java的所有的组成部分都需要有名字。类名,变量名以及方法名统称为标识符
public class HelloWorld {//类名
public static void main(String[] args) {//方法名
System.out.println("Hello, World");
}
}
String teacher = "秦疆";
所有标识符都应以字母,美元符($),或者下划线(_)开始
首字母之后可以是数字,字母,美元,下划线的任意组合
不能用关键字作为变量名或方法名
标识符大小写敏感
强类型语言
弱类型语言
public class Demo02 {
public static void main(String[] args) {
String a = "Hello";
int num = 10;
System.out.println(a);
System.out.println(num);
}
}
java数字类型两大类
基本类型(primitive type)
引用类型(reference type)
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 = 20;
short num3 = 30;
long num4 = 40L; //Long类型要在数字后面加个L
//小数:浮点数
float num5 = 50.1F; //float类型要在数字后面加个F
double num6 = 3.141592653589793238462643;
//字符
char name = ‘A‘;
//字符串,String不是关键字,是类
String namea = "谢超杰";
//布尔值
boolean flag = true;
//boolean flag = falst;
}
}
整数扩展
浮点数扩展
字符扩展
转义字符
布尔值扩展
public class Demo03 {
public static void main(String[] args) {
//整形扩展
int i = 10;
int i2 = 010;//八进制
int i3 = 0x10;//十六进制
int i4 = 0b10;//二进制
System.out.println(i);//10
System.out.println(i2);//8
System.out.println(i3);//16
System.out.println(i4);//2
//浮点数扩展
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false
float d1 = 23232323233223f;
float d2 = d1 + 1;
System.out.println(d1==d2);//ture
//字符扩展
char c1 = ‘a‘;
char c2 = ‘中‘;
char c3 = ‘\u0061‘;
System.out.println(c1);//a
System.out.println((int)c1);//97
System.out.println(c2);//中
System.out.println((int)c2);//20013
System.out.println(c3);//a
//转义字符
// \t 制表符
// \n 换行
//......
System.out.println("Hello\nWorld");
System.out.println("Hello\tWorld");
//布尔值扩展
boolean flag = true;
if(flag = true){}//新手
if (flag){}//老手
//less is more 代码要精简易读
}
}
自动类型转换 低------高
强制类型转换 高------低
注意点
public class 类型转换 {
public static void main(String[] args) {
int a = 10;
byte b = (byte)a;
System.out.println(b);//10
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45
char c = ‘a‘;
int d = c+1;
System.out.println(d);//98
System.out.println((char)d);//b
//溢出问题
//JDK7新特性:数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 10;
int total1 = money*years;
long total2 = money*years;
System.out.println(total1);//1410065408
System.out.println(total2);//1410065408 默认是int类型,转换之前已经存在问题了,解决方案如下:
long total3 = money*((long)years);
System.out.println(total3);//10000000000
}
}
类变量
实例变量
局部变量
public class 变量 {
//实例变量:从属于对象;如果不自行初始化,结果是这个类型的默认值 0 0.0 false 除了基本类型其余的都是null;
String name;
int age;
//类变量 static
static double salary = 2500;
//main方法
public static void main(String[] args) {
int a = 1,b = 2,c = 3;//基本类型,注意程序可读性,最好写成三行
String name = "xiechaojie";//引用类型
char x = ‘X‘;
double pi = 3.14;
//局部变量(在{}内的):必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new 变量();
变量 v = new 变量();
System.out.println(v.age);
System.out.println(v.name);
//类变量 static
System.out.println(salary);
}
}
初始化之后不能在改变的值,不会变动的值
定义:final 常量名 = 值;
? final double PI = 3.14;
常量名一般用大写字符
public class 常量 {
final static double PI = 3.14;//static,修饰符,不存在先后顺序
public static void main(String[] args) {
System.out.println(PI);
}
}
算数运算符:+ - * % ++ -- /
public class Dome01 {
public static void main(String[] args) {
//crl + D 复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);//30
System.out.println(a-b);//-10
System.out.println(a*b);//200
System.out.println(a/(double)b);//0.5
}
}
赋值运算符:=
public class Dome02 {
public static void main(String[] args) {
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//123123123123264L
System.out.println(b+c+d);//142
System.out.println(c+d);//18
}
}
关系运算符:> < >= <= != instanceof
public class Dome03 {
public static void main(String[] args) {
//关系运算符返回的结果: 正确,错误 布尔值
int a =10;
int b =20;
int c =21;
System.out.println(a>b);//falst
System.out.println(a<b);//ture
System.out.println(a==b);//falst
System.out.println(a!=b);//ture
System.out.println(c%b);1
}
}
逻辑运算符:&& || !
位运算符:& | ^ ~(取反) >>(右移) << (左移) >>>
条件运算符:? :
扩展赋值运算符:+= -= *= /=
public class Dome04 {
public static void main(String[] args) {
int a = 3;//++ -- 自增自减一元运算符
int b = a++;//先赋值再自增
int c = ++a;//先自增再赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来做
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
逻辑运算符
public class Dome05 {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b"+(a && b));//a &&bfalse
System.out.println("a || b"+(a || b));//a || btrue
System.out.println("!(a && b)"+!(a && b));//!(a && b)true
//短路运算
int c = 5;
boolean d = (c<4) && (c++<4);
System.out.println(d);//false
System.out.println(c);//5
}
}
位运算符
public class Dome06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001 (位置相同位0,不相同为1)
~B(取反) = 1111 0010
2 * 8 = 16 2*2*2*2 = 16
<< *2
>> /2
0000 0000 0
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
所以2左移三位是16
*/
System.out.println(2<<3);
}
}
三元运算符
public class Dome08 {
public static void main(String[] args) {
//x ? y : z
//如果x==true,则结果为y,否则结果为z
int score= 80;
String type = score<60 ? "不及格" : "及格";
System.out.println(type);
}
}
字符串连接
public class Dome07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a=a+b
a-=b;//b=b-a
//字符串连接符 +
System.out.println(""+a+b);//1020(拼接)
}
}
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
包机制的语法格式为:
package pkg1[. pkg2. pkg3...]];
包的本质就是文件夹
一般利用公司域名导致作为包名;com.baidu.www(com是第一级,baidu是第二级,www是第三级)
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能。*导入包下所有的类。
看阿里巴巴开发手册,无规矩不成方圆,无规范不能协作。
JavaDoc命令是用来生成自己的API文档的
参数信息
@author 作者名
@versin 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
package com.xie.operator;
//类的注释
/**
* @author XieChaojie
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
//文档的注释
/**
* @author XieChaojie
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
//通过命令行 javadoc java文件名 可以查找文档
}
}
用IDEA生成javadoc文档
原文:https://www.cnblogs.com/xie-lumos/p/15054055.html