文章目录
创建项目
直接创建项目
创建空项目增加模块
-
new 空项目
-
File -> new -> Module
-
设置项目结构 File -> Project Structure
-
设置java的SDK版本 与 相对应的项目语言版本
注释
-
单行注释
// 单行注释
-
多行注释
/* 多行注释 多行注释 多行注释 */
-
文档注释
/** * @Description 文档注释 * @Author ShaneCheng */
标识符
- 关键字
- 标识符:Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
注意点:
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例: age、$salary._value、__1_value
- 非法标识符举例:123abc、-salary、tabc
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
数据类型
强类型语言与弱类型语言
-
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用(Java、C++)
- 强类型安全,因为它事先已经确定好了,而且效率高
-
弱类型语言:它的数据类型是可以被忽略的语言,与强类型定义相反。(javaScript)
- 弱类型更灵活,但是效率低,而且出错概率高
Java数据类型分类
- 基本类型(primitive type):基本类型共有八种,其中包括六种数值型与两个非数值型。
数据类型 | 大小(单位:bit/位) | 所属包装类 | 最小范围 | 最大范围 |
---|---|---|---|---|
byte | 8 | java.lang.Byte | -128 | +127 |
short | 2byte = 16 | java.langShort | -32768 | +32767 |
int | 4byte = 32 | java.lang.Integer | -2^31 | +2^31-1 |
long | 8byte = 64 | java.lang.Long | -2^63 | +2^63-1 |
float | 4byte = 32 | java.lang.Float | -3.4 * 10^38 | +3.4 * 10^38 |
double | 8byte = 64 | java.lang.Double | -1.7 * 10^308 | +1.7 * 10^308 |
char | 2byte = 16 | java.lang.Character | 0 | 65535 |
boolean | 所占大小不明确 | java.lang.Boolean | 只有"true"和"false"两个取值 |
(注解:数据存储最小单位是“bit/位”,数据处理的基本单位1byte/字节 = 8bit/位)
- 引用类型(reference type):除了基本数据类型之外的数据类型
- 类、接口、数组等
Java基本数据类型扩展(面试题)
-
特殊需要加后缀的表示
Long num1 = 30L; //long类型要在数字后面加个L float num2 = 50.1F; //float类型要在数字后面加个F
-
整数:各类进制表示
int i1 = 10;//十进制 10 int i2 = 0b10;//二进制 2 int i3 = 010;//八进制 8 int i4 = 0x1F;//十六进制 31
-
浮点型:最好完全避免浮点数进行比较
- 解决方案:BigDecimal类
float f1 = 0.1f; double f2 = 0.1; System.out.println(f1==f2);//结果为false float f3 = 123472894782374287f; float f4 = f3 +1; System.out.println(f3==f4);//结果为true
-
字符型:所有字符的本质还是数字,Unicode编码方式,数字与字符一一对应(0~65535)
char c1 = 'a'; char c2 = '中'; System.out.println((int)(c1));//结果为97 System.out.println((int)(c2));//结果为20013 char c3 = '\u0061'; System.out.println(c3);//结果为a
-
Java常见的转义字符
转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行 (LF),将当前位置移到下一行开头 010 \r 回车 (CR) ,将当前位置移到本行开头 013 \t 水平制表 (HT) (跳到下一个TAB位置) 009 \v 垂直制表(VT) 011 \\ 代表一个反斜线字符’\' 092 \’ 代表一个单引号(撇号)字符 039 \’’ 代表一个双引号字符 034 \0 空字符(NULL) 000 \ddd 1到3位八进制数所代表的任意字符 三位八进制 \xhh 1到2位十六进制所代表的任意字符 二位十六进制 注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换
-
字符串比较 :最好用equals()方法
//对象 从内存分析 String sa = new String("hello,world"); String sb = new String("hello,world"); System.out.println(sa==sb); //这里的比较的是地址 所以不相同,输出false String sc = "hello,world"; String sd = "hello,world"; System.out.println(sc==sd);//相同 输出true
-
布尔值用于条件判断
//Less is More! 代码要精简易读 if(flag==true){} //新手 if(flag){} //老手
基本数据类型转换
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
低------------------------------------------高
byte,short,char-> int -> long-> float -> double
-
强制类型转换: 由高到低 需要声明强制转换,格式: (类型)变量名
int i =128; byte j = (byte) i;//内存溢出 byte(-128~127) 结果为-128
-
自动类型转换:由低到高 不需要声明
byte i = 127; int j = i ;
⭐️注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在大容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
😠特别注意:操作比较大的数,注意溢出问题.
int money = 10_0000_0000;jdk7新特性 ,数字之间可以用下划线分割,有无下划线值一样
int years =20;
int total = money *years; //-1474836480,计算结果溢出
long total2 = money * years;//-1474836480,默认是int,转换之前已经存在问题
long total3 = money * (long)years;//20000000000
变量,常量,作用域
变量
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName[=value] [i,varName[=value]}];
//数据类型变量名=值;可以使用逗号隔开来声明多个同类型变量。
⭐️注意事项
- 每个变量都有类型,类型既可以是基本类型,也可以是引用类型
- 变量名必须都是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须要以分号结束
😄不介意一行里定义多个变量
变量作用域
-
类变量:从属于类
-
实例变量:从属于对象,如果不自行初始化值,这个类型会有默认值
数据类型 默认值 整形 0 浮点型 0.0 布尔型 false 字符型 ‘\u0000’ 引用类型 null -
局部变量:必须声明和初始化值
public class Variable{ static int allClicks = 0;//类变量 String str = "hello , world";//实例变量 public void method() { int i = 0;//局部变量 } }
变量的命名规范
- 所有变量、方法、类名 : 见名知意!
- 类成员变量 : 首字母小写和驼峰原则: monthSalary
- 局部变量 : 首字母小写和驼峰原则
- 常量 : 大写字母和下划线:MAX_VALUE
- 类名 : 首字母大写和驼峰原则: Man, GoodMan
- 方法名 : 首字母小写和驼峰原则: run(), runRun()
常量
常量(Constant) : 初始化(initialize)后不能再改变值! 不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
关键字:final
😄常量名一般使用大写字符。
final 常量名=值;
final double PI=3.14;
⭐️修饰符不区分先后顺序,例如final、static
运算符
基本运算符
-
算术运算符:加(+)、减(-)、乘(*)、除(/)、取模(%)
-
加(+)扩展
long a = 123456789123456789L; 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类型
-
-
关系运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)、instanceof(对象是否为类的实例)
-
逻辑运算符:逻辑与(&&)、逻辑或(||)、逻辑非(!)
-
位运算符:按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)、无符号右移(>>>)
- 右移(>>):针对补码,补符号位
- 无符号右移(>>>) : 针对补码,补0
-
条件运算符 (?:)
-
扩展赋值运算符:+=,-=,*=,/=
自增自减运算符
//++ 自增 --自减
int b = a++;//先赋值 再自增(a=a+1)
int c = ++a;//先自增(a=1+1) 再赋值
包机制
包语句的语法格式,必须放在代码的最上面
package pkg1[.pkg2[.pkg ...]];
-
一般利用公司名字倒置作为包名;
com.baidu.www
⭐️多级目录无法展开的问题
点击箭头所指齿轮-->点击相应的设置
-
导入包
import pkg1[.pkg2[.pkg ...]].(classname|*);
快捷键: Alt+ 回车
import com.* //导入com包下的所有类
JavaDoc生成文档
参数信息
- @author作者名
- @version 版本号
- @since指明需要最早使用的jdk版本param参数名
- @return返回值情况
- @throws 异常抛出情况
通过命令行生成帮助文档
- 编写文档注释
package com.Cheng.base;
/**
* @author ShaneCheng
* @version 1.0
* @since 1.8
*/
public class Demo_Doc {
String name;
/**
*
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
- 打开文件所在文件夹位置
-
在该位置打开相应的cmd窗口(在文件地址栏前面加上cmd+空格,回车即可打开)
-
输入相应的文档生成命令
javadoc -encoding UTF-8 -charset UTF-8 Demo_Doc.java
即可得到相应的html文件等信息
点击index.html打开得到生成的帮助文档页面
通过idea生成javaDoc文档
- 打开相应的选项面板
- 设置
-encoding是java代码编码,-charset是对生成文档所用的编码。-windowtitle就是对应html的
-encoding UTF-8 -charset UTF-8 -windowtitle "test"
- 结果
通过idea生成javaDoc文档
- 打开相应的选项面板
- 设置
-encoding是java代码编码,-charset是对生成文档所用的编码。-windowtitle就是对应html的<title>标签
-encoding UTF-8 -charset UTF-8 -windowtitle "test"
3. 结果
引用:
https://www.cnblogs.com/bd-Luming/p/10394270.html
https://www.cnblogs.com/noKing/p/8006298.html