创建empty project(空项目)
新建模块(Module)
选择java–>next
取名(尽量不要是中文)
创建成功(Hello是后续创建的类)
点击Project Structure(file中也有)设置sdk
在project中设置,jdk版本和语言都为8
点击设置
选择“编辑”–>“颜色模板样式”–>“Java”
选择“注释Comments(Annotation是注解)” --> “行注释Line comment” --> 选择”加粗/斜体“ --> 选择颜色 -->点击”Inherit values from“锁定
块注释block comment
行注释line comment //
单行://balabala
多行:
文档注释:
百度:有趣的注释
标识符和关键字
关键字
标识符:只能由字母,数字,_(下划线) ,$ 组成
不能以数字开头
不能有非法字符
可以用汉字命名,但不提倡,最好也不要用中文拼音
命名规则 尽量见名知意
尽量见名知意
尽量见名知意
包名:全小写
包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词,最好用域名反过来写,不会冲突。如com.cnblogs.sun99bk.myutil等。
类名、接口名:每个单词的首字母大写 如:ClassName*(驼峰原则)*
变量名、方法名(参数名、对象名):第一个单词小写,后面单词的首字母大写,如:setName(), dbClassName。(第一个单词小写和驼峰原则)
常量名:所有字母都大写 如:MAX_COUNT*(大写字母和下划线)*
强类型语言–>java
先定义,后使用安全性高速度慢 弱类型语言–>vb,js 基本类型(Primitive type) 数值类型
整数类型
byte(占1个字节)范围:-128~127
字节整型
short(占2个字节)范围:-32768~32767
短整型
int(占4个字节)范围:-2147483648~2147483647
整型
long(占8个字节)范围:
-9223372036854775808~9223372036854775807
长整型4000025L/787955l(数字后面加L)
浮点类型
float占4个字节
单精度浮点型123.123f/165.231F(数字后面加F) double占8个字节
双精度浮点型
字符类型
char占2个字节
String是一个类,不是一个数据类型:可定义字符串
boolean类型:占1位,其值只有true和false两个Boolean a=false;Boolean a=true; 字节
字符1B=8bit(1字节=8位)
11001100是一个八位得二进制数
一些单位换算字母、数字、字和符号
引用类型(reference type)1024B=1kb
1024kb=1M(兆)
1024M=1G
1024G=1TB
类接口数组 拓展
整数
二进制(0b开头)
十进制(平时使用的数字)
八进制(0开头)
十六进制 (0x开头)
都是以十进制数输出
public static void main(String[] args) {
int a=10;
int b=010;
int c=0x10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
//输出10 8 16
浮点数
public static void main(String[] args) {
float a=0.1f;
double b=1.0/10;
System.out.println(a);
System.out.println(b);
System.out.println(a==b);
}
//输出0.1 0.1 false-->精度丢失,最终判断为不相等
//======================================================
//浮点数的拓展? 银行业务怎么表示? 钱
//BigDecimal 数学工具类
//======================================================
public static void main(String[] args) {
float d1=1231564654489f;
float d2=d1+1;
//比较两个数是否相等,相等数出true,不相等输出false
System.out.println(d1==d2);//发现输出了true
}
//float 有限、离散、舍入误差、大约、接近但不等于
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
字符
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(2^16)个字符
//所有字符的本质还是数字
Unicode 编码:
范围U0000~UFFFF
u0061 (反斜杠表示转义,把后面的字符意思进行转化)
输出"a"
'a’的数值对应的为Unicode字符集中’a’字符的编码值
相当于 97 对应 u0061
在Java中 “u0061” “a” “97” 三者是等价的
转义字符:
t 制表符(相当于隔开一个Tab的长度)
n 换行
public static void main(String[] args) {
String a=new String("don't");
String b=new String("don't");
System.out.println(a==b);//输出false
String c="don't";
String d="don't";
System.out.println(c==d);//输出true
}
布尔值
public static void main(String[] args) {
boolean a=true;
if(a==true){}
if(a){}//两句等效,默认判断括号里的内容为真
}
低 byte,short,char—>int—>long—>float—>double 高
强制转换:高—>低 使用方法:(类型)变量名
自动转换:低—>高
不能对布尔值进行转换(只占一位)
不能把对象类型转换为不相干的东西
在高容量转换到低容量的时候,强制转换
转换的时候可能存在内存溢出
public static void main(String[] args){ int a=128; System.out.println((byte)a);//内存溢出,输出-128 }或精度异常(float、double转int,直接舍弃小数点后的数)
JDK7新特性:数字之间可以用下划线分割,且不会被输出。
public static void main(String[] args){
int money=10_0000_0000;//方便数0
System.out.println(money);//输出1000000000
System.out.println("====================================");
int a=10_0000_0000,b=20;
long c=a*b;
System.out.println(c); //数据溢出:-1474836480
//原因:*优先级大于=(赋值),所以先算a*b,输出一个int型的数字,但是由于200_0000_0000超出了int类型的范围,溢出,输出了一个负数,并且直接讲这个负数赋值给了long型的变量c。
//解决:先将某个变量强转,再计算,再赋值
//long c=((long)a)*b
}
4. 变量、常量
- 变量
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
不建议一行定义多个变量
作用域:
类变量
static修饰的变量
public class Demo1 { static double salary=2500;//不实例化可直接使用 public static void main(String[] args) { System.out.println(salary); } }
实例变量
从属于对象
public class Demo1 { //不进行初始化,会输出默认值 // 0 0.0 //布尔值:默认false //除了基本类型,其余都是null String name; char id; int age; public static void main(String[] args) { //变量类型 变量名= new Demo1(); Demo1 demo1 = new Demo1(); //快捷键:new Demo1() Alt+回车 再回车 System.out.println(demo1.name);//输出null System.out.println(demo1.id);//没有输出 //猜想:因为char是用来装一个字符,没有放东西进去,所以不输出任何东西? System.out.println(demo1.age);//输出0 //快捷键:demo1.age.sout } }
局部变量
定义在所有方法的{}里面
public class Demo1 { //main方法(主方法) public static void main(String[] args) { //局部变量:必须声明和初始化值 int a=0; System.out.println(a); } //其他方法 public void add(){ System.out.println(a);//没有声明a不能输出 } }
常量(Constant)[全大写]
常量——特殊变量——初始化(initialize)之后不能再改变
final 常量名=值;final double PI=3.14;
public class Demo1 {
//修饰符,不存在先后顺序,再加个public或者private都是一样的
static final double PI=3.1415;
//final static double PI=3.1415;//与上一行等价
public static void main(String[] args) {
System.out.println(PI);
}
}
算术运算符:+ ,-,*,/,%,++,–
short b=12; byte c=7; System.out.println((String)(b+c)); //这样移动鼠标可以查看b+c转换成了什么类型
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
~取反 >>右移 /2 <<左移 *2 2<<3 2左移3位-->2 *2*2*2=16
偷懒:
条件运算符/三目运算:? :
int a=55; String type = a>60?"及格":"不及格" //判断a是否>60,是则输出“及格”,否则输出“不及格”
扩展赋值运算符:+=,–,*=,/=
字符串连接符a=a+7;
a+=7;
输出的所有内容,只要有一个+的一边为String类型,那么其他的将会进行拼接,不会相加。但String必须在运算之前。
int a=10,b=5;
System.out.println(""+a+b);//输出105
System.out.println(a+b+"");//输出15
6. 包机制、JavaDoc
包机制
package 包名;
一般利用公司域名倒置作为包名 如:com.baidu.www包名全小写为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。
使用import语句
import package 包名; JavaDoc
javadoc命令是用来生成自己api文档的
参数信息:
@author 作者号@version 版本号@since 指明需要最早使用的jdk版本@param 参数名@return 返回值情况@throws 异常抛出情况
package com.tang;
public class Hello {
String name;
public static void main(String[] args) {
String name="汤颖仪";
System.out.println(name+":Hello World!");
byte num1=127;//整型
int num2=26666;//整型
short num=2000;//短整型
long a=127L;//长整型
char b='汤';//字符型
float c=856.1f;//浮点型
double d=984.12;//双精度浮点型
}
public String test(String name) throws Exception{
return name;
}
}
生成javadoc文档
使用cmd
使用idea



