Dos命令
打开Dos快捷键:windows+R
输入:cmd
开启快速复制:鼠标右键>属性>编辑选项
cd
切换目录
cd..
返回上层目录
cd\
退回当前目录
dir
查看当前目录子文件和子文件夹
cls
清屏
exit
退出
Tab
自动补全
↕
使用用过的命令
mkdir
创建
rmdir
删除
jdk新特性
jdk1.2
JVM
数据类型敏感
结构分离
Java2 被划分为J2SE J2EE J2ME
jdk1.5
自动装箱与拆箱
自动装箱的过程
每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中
自动拆箱的过程
每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法
自动装箱
只需将该值赋给一个类型包装器引用,java会自动创建一个对象
自动拆箱
只需将该对象值赋给一个基本类型即可
java——类的包装器
类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean
枚举
简单的用法
JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值
复杂用法
Java为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象
静态导入
通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法
jdk1.7
switch中可以使用字串
Boolean类型反转,空指针安全,参与位运算
安全的加减乘除
jdk1.8
允许在接口中有默认方法实现
函数式接口
方法和构造函数引用
jdk安装
jdk和jre安装同一路径
测试是否成功:java -version
java小程序详解
public<公共的> class<类> name<类名><首字母大写>{<类体的开始><一对{}就要缩进(Tab)>
public<公共的> static<静态的> void<没有返回值的> main<主方法><程序的入口>(String[] args<参数列表>){<方法体的开始>
System<系统>.out<输出>.println<打印>("Hello");<""里原封不动的输出>
}<方法体的结束>
}类体的结束
类(Class)
一个文件中可以有多个类,但只能有一个类被public修饰,并且这个类名要与文件名一致
方法(Method)
一个类中可以存在多个方法,但是只能有一个主方法,主方法是程序的入口,逐行执行主方法中的代码
一个类中可以没有主方法,但是如果解释执行一个类,没有主方法会报错
注释(Comment)
什么是注释?
解释说明文字
为什么使用注释?
对程序的说明
便于后期维护
单行注释
作用域:只在当前行有效
嵌套:可以嵌套单行注释,不可以嵌套多行注释和文档注释
颜色:绿色
位置:行的上面或者行的末尾
多行注释
作用域:多行有效
嵌套:可以嵌套单行注释,不可以嵌套多行注释和文档注释
颜色:绿色
位置:类的上面或方法的上面
文档注释
作用域:多行有效
嵌套:可以嵌套单行注释,不可以嵌套多行注释和文档注释
颜色:墨蓝色
位置:类的上面或方法的上面
可以出现在类的API文档中,生成某个类的api文档,javadoc
注释的内容不会被编译(可以通过反编译工具验证)
标识符(Identifier)
在java中一切起名字的地方的名字就是标识符
命名规则
标识符只能数字,字母,下划线_,美元符号$任意组合而成,但是数字不能开头
标识符严格区分大小写
关键字不能作为标识符使用
命名规范
见名知意
驼峰命名原则
包: 全部小写
单级包: shangxuetang
多级包: shang.xue.tang
类|接口
每个单词的首字母大写 ShangXueTang
方法|变量
第一个单词全部小写,第二个单词开始,每个单词首字母大写 shangXueTang
常量
全部大写 每个单词之间使用_进行分割 SHANG_XUE_TANG
关键字
在java中,有一些词有自己的用法或者用途,这些词就是关键字
所有的关键字都是小写,颜色存在不同显示
保留字
在java中,有一些词将来有可能有自己的用法或者用途,这些词就是保留字
goto
const
常量(Constant)
在程序执行过程中,其值不会发生改变的量
分类
字面值常量
整数常量: 123 -123
小数常量: 1.2 -1.2
字符串常量: "abc"
字符常量: 'a'
布尔常量: true,false
空常量: null
自定义常量
final修饰的变量为常量
知识扩展
(println)ln是光标从这一行的行位换到下一行的行首
变量(Variable)
可变的量
在java程序执行过程中,其值会发生改变的量
在内存中,开辟一块空间,用来存放指定数据类型的数据
语法
声明的同时赋值
数据类型 变量名 = 变量值;
int a=10;
先声明后赋值
数据类型 变量名;
String name;
变量名= 变量值;
name="张三";
一行同时声明多个变量
int x,y,z;
= 是java中唯一一个自右向左运算的符号
z=x=y=10;
变量名字 (遵循标识符的命名规则和规范)
变量的值 (和数据类型一致)
作用域: {}
在其作用域范围内才能使用,变量同一时只能指向一个值
同一作用域中的变量不能同名
分类
局部变量
方法|语句块内定义的变量
使用前必须声明并且已赋值
成员变量|实例变量
类中方法外
如果成员变量只声明未赋值,存在默认值
byte,short,int,long-->0
float,double-->0.0
char-->\u0000
boolean-->false
String-->null
数据类型(DataType)
基本数据类型
byte(字节型)
1个字节 8位
[-128,127]
short(短整型)
2个字节 16位
[-32768,32767]
int(整型)
4个字节 32位
[-2147483648——2147483647]
long(长整型)
8个字节 64位
[-9223372036854775808~9223372036854775807]
float(单精度)
4个字节
精度为6~7位有效数字
double(双精度)
8个字节
double的精度为15~16位
char(字符型)
2个字节
0~65535
boolean(布尔型)
1位
true
false
String(字符串)
整数的字面长量值默认的数据类型是int类型
如果给byte,short赋值,只要在其范围之内的字面常量值都能成功赋值
如果想要给long类型的常量赋值,需要在数据的后面添加一个L/l 推荐使用L
小数默认字面常量值类型为double,如果想要给float赋值,在数据的后面添加一个f/F
小数因为内部存储方式的不同,运算不精确的
如果字符型的数据参与运算,默认转为十进制的数再去运算
引用数据类型
类(class)
接口(interface)
数组[](array)
数据类型转换(DataTypeConvert)
boolean类型不参与类型转换
自动类型提升:隐式类型转换
从小范围类型->大范围的数据类型
byte b1=127;
short s1=b1;
强制类型转换:显示类型转换
从大范围类型->小范围类型,有可能会损失精度
float f1=(float)1.9;
int int1=(int)f1;
小范围数据类型 变量名 = (小范围数据类型)大范围数据类型;
byte by1=(byte)128
转义字符(EscapeCharacter)
用来表示有些具有特殊含义的字符
转义字符从\开始
\t 制表符
一个制表符代表8个空格,一个字母1个空格,一个汉字占2个空格
查看前面的内容,是否满足制表符的整数倍,如果不满足补满,如果满足重开一个制表符位
\b退格
光标会删一格
\n换行
ln类似
\r 回到行首
光标回到行首
数值形式(Numerical)
整数的不同进制:满几进一
二进制: 由0,1组成 以0b/0B开头表示二进制
八进制: 由0~7组成 以0开头表示八进制
十进制: 默认
十六进制: 0~9,a~f组成 大小写都可以 以0x/0X表示十六进制
其他进制转十进制:从后往前,从最后一位开始*进制数,次方从0开始每次+1,最终所有位数的值求和
十进制转其他进制:一直除以要转为的进制数,得数为0为止
浮点数的表示形式
0.5->0可以省略
科学计数法表示
e->10
1.234e2 ->1.234*10^2
1.234e-2 ->1.234/10^2
运算符(Operator)
操作数: 运算符左右两边的数叫做操作数
表达式: 运算符链接两边的操作数咋横踢叫做表达式
语句: 遇到;就是语句的结束
单目运算符|一元运算符
操作数只有一个 ++ -- -负号
双目运算符|二元运算符
+ - / * %
三目运算符|三元运算符
条件运算符
算数运算符
+
+正号
加法运算
字符串的连接符
当+左右两边由字符串的出现,就作为字符串的连接符使用,最终得到一个字符串结果
-
负号 不能省略
减法运算
*
乘号
乘法运算
%
取余数|取模|模以
如果前面的操作数<后面的操作数,结果为第一个操作数
++ --
操作自己|不影响别人
++放在操作数的前面还是后面都是自身+1
--放在操作数的前面还是后面都是自身-1
操作别人|影响别人|参与运算
++--放在操作数的前面,先自身先去+1|-1,再参与运算
++--放在操作数的后面,先参与运算,再自身+1|-1
赋值运算符
基本赋值运算符
=
java中唯一一个自右向左运算的符号
优先级别最低
扩展赋值运算符
算数运算符+基本赋值运算符
+= -= *= /= %=
优点: 自动做强制类型转换 ,提高执行效率
缺点: 不直观
关系运算符|比较运算符
> < >= <=
只能针对byte,short,int,long,char,float,dobule进行比较
== !=
可以对基本数据类型或引用数据类型做比较
比较运算符最终的结果都是boolean类型的值 true,false
逻辑运算符
逻辑运算符左右两边的操作数都是值为boolean类型的表达式
& 与 一个为false就是false,两个都是true才是true
| 或 一个为ture就是true,两个都为false才是false
^ 亦或 相同为false,不同为true
&& || 短路,如果第一个值已经能够决定表达式的结果,第二个值就不再执行
条件运算符
条件表达式 ? 值1 : 值2;
条件表达式是值为boolean类型的表达式
执行流程
计算条件表达式
如果值true,最终结果取值1
如果值false,最终结果取值2
位运算符
先把操作数转为二进制,参与运算,结果转为10进制
& 统一位数的两个数,如果一个为0就是0,两个都为1才是1
| 同一位数的两个数,如果一个为1就是1,两个都为0才是0
^ 相同为0,不同为1
右移运算符 相当于/2的第二个操作数次方
>> 假设第一个操作数二进制数的右边有一个分水岭,移动第二个操作数个位数,移出分水岭的数不计算,剩下的二进制转为十进制
左移运算符 相当于*2的第二个操作数次方
<< 向左移动第二个操作数个位数,空余补0,最终转为十进制
Scanner ( 接受键盘输入)
导包
说明Scanner类的地址 使用import关键字+路径 导包 java.util.Scanner;
导包要类的上面导包
创建Scanner类型的变量--根据公式 Scanner sc=new Scanner();
使用功能
nextInt() 接受int类型的整数
nextByte() 接收byte类型的整数
nextShort() 接收short类型的整数
nextLong() 接收long类型的整数
nextDouble()
nextFloat()
next() 接收用户输入的字符串类型的数据
从有效字符开始接收,知道遇到空格,tab不再接收了,enter停止功能
nextLine() 接收字符串数据,遇到enter结束功能(接收一整行)
关闭
变量.close();
一定要再这个类使用完毕Scanner之后再关闭,否则后面重新开启也无法继续使用
Random(产生随机数)
导包 java.util.Random
创建Random类型的变量|引用
通过引用数据功能
随机整数
nextInt() 随机产生int类型范围内的一个随机整数
nextInt(整数n) 范围: [0,n)随机整数
公式
[min,max) 引用.nextInt(max-min)+min
[min,max] 引用.nextInt(max-min+1)+min
随机小数
nextDouble() 产生随机小数 [0,1)
流程控制语句(If)
顺序结构
选择结构:根据判断,满足条件执行某些代码
循环结构:重复执行某些代码
if..else
单分支|单选泽
if(条件判断){
满足条件要执行的语句
}
执行流程
计算判断条件(值为boolean类型的表达式)
如果true,执行{}语句体
如果false,不执行,直接跳过if结构
双分支|双选择
if(条件判断){
语句体1;
}else{
语句体2;
}
无论是否满足都会有与具体执行,肯定会有一个结果
多分支|多选择
同是双分支
if和条件表达式之间的区别
if可以对多个条件多次判断
条件表示肯定会有结构
java基础详解
猜你喜欢
转载自blog.csdn.net/weixin_45116982/article/details/90582666
今日推荐
周排行