JavaSE知识总结

📅 2026/6/30 4:50:21
JavaSE知识总结
Java语言初识了解Java语言MarkDown语法简单的dos命令JDK-开发者工具包 配置环境变量JRE-运行环境二、HelloWorlddos命令运行-javac hello.javajava hello三、基础语法注释-行内注释//多行注释/*/文档注释(/*/)标识符-关键字数据类型【1.基本数据类型整数 byte1short2int默认4long8浮点数 float4double 默认8字符 char2布尔 boolean12.引用数据类型类接口数组】类型转换-自动该类型转换低转高、强制类型转换高转低-低高变量和常量【数据类型 变量名值作用域-类变量、实例变量、局部变量常量- final 常量名值命名规范-洁简、驼峰命名、常量尽量只用大写】运算符[1.算术运算符、-、、/、%、、--2.赋值运算符 3.关系运算符、、、、、!、instance of4.逻辑运算符、||、5.位运算符、|、^、~、、、6.条件运算符7.扩展运算符、-、*\、/ ]包机制防止命名冲突、package第一行、importjavaDoc【jdk帮助文档javadoc -encoding 编码 -charset 编码 文件名.java 就可生成网页java帮助文档在代码中用文档注释符编写帮助信息包括author 作者信息version版本since最早支持版本param参数例如argsreturn返回值throws异常】三、流程控制Scanner 用户交互system.in接受用户输入顺序结构程序默认的结构自上而下的执行选择结构【1.if单选择结构2.if-else 多选择结构3.if-else if-else多选择结构4.switchjdk支持了String类型、case穿透现象、break、default】循环结构【1.while先判断再循环2.do...while先循环再判断3.for for初始值循环条件循环变量改变4.增强for循环】break、continue【break跳出循环continue终止当次循环带标签的continuereturn结束方法的运行用在main方法中直接退出程序】四、方法方法的定义修饰符 返回值 方法名参数名return 返回值若类型为void则可以不要return方法的调用类名.方法名、对象.方法名方法重载名字相同参数列表不同命令行传参可变长参数必须放在最后一个参数递归自己调用自己给自己一个出口五、数组数组的定义数组类型[]数组名new 数据类型[数组长度] 或 数组类型[]数组名new 数据类型[]元素1....或数据类型[]数组名数组名new 数据类型[数组长度] 数组中的数据必须为同类型数组的使用通过下标取值用for循环遍历二维数组声明时用[][]Arrays工具类 Arrays.方法名数组名 常用方法包括toString将元素转换为字符串输出多维数组用deepToString、sort对数组进行升序排序并替代原有数组、binarySearch对数组进行二分查找Arrays.binarySearch数组名查找值最好是排序后查找否则可能不靠谱、fill将数组中的所有元素设为同一个值、copyOf复制一个数组的所有内容并创建一个新的数组、equals比较两个数组内容是否相同排序算法冒泡排序、快速排序......六、面向对象类与对象 类是对象的抽象模板对象是类的具体new对象栈存放引用堆存放具体的对象封装属性私有提供get、set方法继承子类extends父类java是单继承一个子类只能继承一个父类object是所有类的父类子类拥有父类的所有特性方法重写方法重写中方法名、返回类型、参数子类必须与父类一样子类方法不能缩小父类的访问权限向上转型和向下转型时调用方法只能调用编泽类型和运行类型共有的不能调用运行特有的先从运行开始找属性输出看编译类型方法调用看运行类型动态绑定机制【若子类中没找到此方法则在父类中查找若在父类的方法中有调用其他方法的语句则调用运行类型中的有调用属性的则采用哪里声明哪里使用】this、super多态父类的引用指向子类的对象Person personnew Student()、instance of修饰符public、private、static、protected、final、abstract接口interface声明只能定义方法名子类实现接口必须重写其中的方法接口比抽象类更抽象一个类可以实现多个接口集合框架可分为collection接口和map接口两大类collection用以存储单一元素的容器是单列集合的根接口主要有三大分支List、set、Queue/DequeList元素有序可重复、可通过索引访问 常用实现类有ArraylistArraylist基于动态数组实现增删中间元素慢删除中间元素则后面元素往前移一位、Linkedlist、Linkedlist基于双向链表实现插入删除块随机访问慢需要从头遍历、 Vector线程安全版的动态数组已较少使用、Stack继承自Vector是后进先出栈Set元素无重复部分无序部分有序。常用实现类有HashsetHashset基于Hashmap实现元素无序、LinkhashsetLinkhashset基于Linkhashmap实现保持插入顺序输出时有序输出、TreesetTreeset基于Treemap红黑树实现元素按自然顺序升序或比较器排序自定义Queue/Deque队列/双端队列遵循先进先出FIFO或双端操作规则。常用实现类有PriortyqueuePriortyqueue是基于堆实现的优先队列按优先级出队调用输出语句后默认输出最小值也可自定义构造器、ArraydequeArraydeque是基于循环数组实现的双端队列高效无容量限制Map是双列集合的根接口存储key-value键值对。常用实现类有HashmapHashmap是基于哈希表的元素无序jdk1.8起引入红黑树优化链表性能、LinkedhashmapLinkedhashmap是基于哈希表双向链表实现的保持插入顺序和访问顺序有序输出、TreemapTreemap是基于红黑树实现的按key排序输出、HshtableHshtable是线程安全的哈希表已较少使用、ConcurrenthashmapConcurrenthashmap是高性能线程安全哈希表支持并发访问IO流file对象的常用方法绝对路径是带盘符的相对路径不带盘符查找时从当前项目查找