java基础详解

    xiaoxiao2025-08-21  6

    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可以对多个条件多次判断 条件表示肯定会有结构
    最新回复(0)