Java修炼之凡界篇 筑基期
Java
莫在问
世界上有条很长的路叫做梦想,还有一堵很高的墙叫做现实。
展开
-
Java修炼之凡界篇 筑基期 第01卷 入门 番外5 Markdown Emoji 图标列表
Markdown Emoji 图标列表原创 2024-02-23 14:00:39 · 938 阅读 · 1 评论 -
Java修炼之凡界篇 筑基期 第06卷 面向对象 第06话 抽象类与接口
抽象类与接口抽象类Java 语言中使用 abstract 修饰符来标识类或方法,表示类或方法是抽象的,修饰类则为抽象类,修饰方法则为抽象方法抽象类中可以没有抽象方法,抽象方法的类一定是抽象类抽象类不能使用 new 关键字来实例化对象抽象类只能让子类继承,是对子类的规范抽象方法,只是方法的声明,没有方法的实现,方法的实现交由子类处理子类继承抽象类,那么就必须要实现抽象类中没有实现的抽象方法,否则该子类也要声明为抽象类程序案例:public class Worker原创 2021-09-05 16:53:19 · 146 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第06卷 面向对象 第05话 static关键字
static 关键字在《Java编程思想》有这样一段话:“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”简而言之,方便在没有创建对象的情况下来进行调用(方法/变量)被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问static可以用来修饰类的成员方法、类的成原创 2021-09-05 16:52:09 · 148 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第06卷 面向对象 第04话 封装、继承和多态
封装、继承和多态封装程序设计追求“高内聚、低耦合”高内聚:类的内部数据操作细节自己完成,不允许外部干涉低耦合:仅暴露少量的方法供外部使用封装即信息隐藏,通常在开发过程中,应禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问,称为信息隐藏属性私有,提供操作这些属性的方法(get/set方法)封装能够提高程序的安全性,保护数据;隐藏程序代码的实现细节;统一接口;提高系统可维护性程序案例:public class Application { pu原创 2021-09-05 16:51:09 · 160 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第06卷 面向对象 第03话 构造器
构造器构造器创建类中构造器也被称为构造方法程序案例:public class Application { public static void main(String[] args) { // new 关键字实例化类得到一个女人的对象 Person woman = new Person(); }}// --------------------------------------// 控制栏输出打印:/**无输出 */publ原创 2021-09-05 16:48:25 · 131 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第06卷 面向对象 第02话 类和对象
类和对象类类是一张抽象的数据类型,它是对某一类事物的整体描述或定义类并不能代表某一个具体的事物,它是用来描述或定义某一类事物应该具备的特点和行为例如:人、宠物、车等,都是用来描述或定义某一类群应该具备的特点和行为对象对象是抽象概念的具体实例例如:王二就是人的一个具体实例,王二家的七七家的猫就是宠物的一个具体实例能够体现出特点、展现出功能的具体实例叫对象;抽象出的类群名词叫类对象的创建及初始化Java 程序中使用 new 关键字来创建对象使用 new 关键字创建对原创 2021-09-05 16:47:40 · 129 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第06卷 面向对象 第01话 什么是面向对象
什么是面向对象Java 的核心思想就是OOP(面向对象)面向过程步骤清晰简单适合处理一些较为简单的程序场景面向对象物以类聚,面向对象思想是分类的思维模式,由宏观到微观首先,对需要解决的问题进行分类然后,对分好类的问题进行单独思考最后,对某个分类下的细节进行面向过程的思索面向对象适合处理复杂的问题,适合处理需要多人协作的问题对于描述复杂的事务,为了从宏观上把握和整体上合理分析,我们需要使用面向对象的思路分析整个系统,具体到微观操作,仍然需要面向过程的思路去处理什么是面向对象原创 2021-09-05 16:41:09 · 120 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 番外2 数组的简单内存分析
数组的简单内存分析Java 内存-堆存放 new 的对象和数组可以被所有线程共享,不会存放别的对象引用Java 内存-栈存放基本变量类型(包含这个基本类型的具体数值)引用对象的变量(会存放该引用在堆里面的具体地址)Java 内存-方法区可以被所有线程共享包含所有的 class 和 static 变量...原创 2021-09-05 16:17:32 · 104 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 番外1 稀疏数组
稀疏数组稀疏数组是一种数据结构当一个数组中大部分元素为0,或者为同一数值时,可以使用稀疏数组来保存该数组(压缩数据)稀疏数组的处理方式:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模程序案例:public class SparseArray { public static void main(String[] args) { /** * 原始数组[6][7原创 2021-09-05 16:17:08 · 106 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第07话 冒泡排序
冒泡排序冒泡排序无疑是最为出名的排序算法之一,共有八大排序冒泡排序程序代码比较简单,两层循环,外层循环冒泡轮数,里层循环进行比较冒泡排序程序案例:public class BubbleSort { public static void main(String[] args) { int[] ints = {23,4567,9,86,34,962,7,89,0,65,42,37}; // 降序排序 System.out.prin原创 2021-09-05 16:16:37 · 134 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第06话 Arrays 类
Arrays 类数组工具类 java.util.Arrays数组本身没有方法供开发人员进行调用,Java API 提供了一个工具类 Arrays 供开发人员进行使用,可以使用这个工具类对数据处理一些基本的操作Arrays 类中的方法都是 static 修饰的静态方法,在开发时可以直接使用类名进行调用,而“不用”使用对象来调用(是“不用”,不是“不能”)Arrays 类可以对数组进行赋值操作,fill 方法Arrays 类可以对数组进行排序,sort 方法(升序)Array原创 2021-09-05 16:16:11 · 134 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第05话 多维数组
多维数组多维数组可以看成是数组的数组二维数组语法格式:dataType[][] arrayRefVar;二维数组初始化:// 静态初始化int[][] mutidArray = {{1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {4, 5, 6}, {5, 6, 7}, {6, 7, 8}, {7, 8, 9}, {8, 9, 10}, {9, 10, 11}};// 动态初始化int[][] ints = ne原创 2021-09-04 22:33:12 · 125 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第04话 数组的使用
数组使用程序案例:public class ArrayUse { public static void main(String[] args) { int[] arrayInt = {4, 7, 1, 3, 5, 8, 9, 2, 6}; System.out.println("===========打印数组集合==========="); // 打印数组元素 for (int i = 0; i < arrayInt.le原创 2021-09-04 22:31:53 · 126 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第03话 数组基本特点和边界
数组基本特点和边界数组基本特点数组长度是确定的,数组一旦被创建,其大小就是不可以在更改数组元素必须是相同类型,不允许出现混合类型数组元素可以是任何数据类型,包括基本类型和引用类型数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量数组本身就是对象,Java 中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的数组边界问题下标的合法区间:[0, length - 1],如果越界则会报错public static void m原创 2021-09-04 22:31:15 · 143 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第02话 数组三种初始化
数组三种初始化方式静态初始化int[] arrayInt = {1, 2, 3};Schema[] schemas = {new Schema(), new Schema(), new Schema()};动态初始化int[] arrayInt = new int[3];arrayInt[0] = 1;arrayInt[1] = 2;arrayInt[2] = 3;数组默认初始化,数组是引用类型,其元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量原创 2021-09-04 22:30:45 · 113 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第05卷 数组 第01话 数组定义、声明与创建
数组定义、声明与创建数组定义数组是相同类型数据的有序集合数组描述的是相同数据类型的若干个数据,按照一定的先后顺序排列组合而成在数组中,每一个数据称为一个数组元素,每个数组元素可以通过数字编码(下标或索引)来进行访问数组声明与创建首先必须声明数组变量,才可以在程序中使用数组数组声明语法格式:dataType[] arrayRefVar; // 推荐这种声明方式或dataType arrayRefVar[]; // 与上面声明效果相同,不推荐使用(C语言风格)Java 语原创 2021-09-04 22:28:11 · 133 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第04卷 方法 第04话 方法的其他用法
方法的其他用法方法命令行传参程序案例:public class Method { public static void main (String args[]){ for (int i = 0; i < args.length; i++) { System.out.println("args[" + i + "]" + args[i]); } }}使用DOS命令去编译Method类,且进行调用:ja原创 2021-09-04 22:05:09 · 116 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第04卷 方法 第03话 可变参数方法
可变参数方法JDK1.5 开始,Java 支持传递同类型的可变参数给一个方法方法声明中,在指定参数类型后加一个省略号(…)一个方法中只能指定一个可变参数,它必须是方法的最后一个参数任何普通的参数必须在它之前声明程序案例:public class MainMehtod { public static void main(String args[]) { add(1, 2, 3, 4, 5, 6); add(10.1, 1, 2, 3, 4原创 2021-09-04 22:03:57 · 136 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第04卷 方法 第02话 方法调用与重载
方法调用与重载方法调用方法引用(调用):对象名称.方法名(实参列表)Java 语言支持两种调用方法的方式,根据方法是否有返回值来进行选择当方法返回一个值时,方法调用通常被当做一个值int larger = max(30, 40);当方法无返回值时,方法调用一定是一条语句Java 是值传递,而不是引用传递值传递是传递实参副本,函数修改不会影响实参;引用传递是传递实参地址,函数修改会影响实参程序案例:public class PassValue { p原创 2021-09-04 22:03:05 · 114 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第04卷 方法 第01话 什么是方法
什么是方法什么是方法方法是 Java 语言中程序语句的集合,它们在一起去执行某一项功能方法是解决一类问题步骤的有序组合方法包含在类或者对象中方法在程序中被创建,在其他地方被引用(调用)方法的设计原则:方法的本意是功能块,就是实现某个功能的语句块集合设计方法时,最好保证方法的原子性,即一个方法只做一件事情(一个功能),有效提高程序的扩展性方法定义Java 语言的方法就是一段用来完成某个特定功能的程序片段语法结构:修饰符 返回值类型 方法名 (参数原创 2021-09-04 22:01:57 · 129 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第03卷 流程控制 第05话 break continue goto
break continuebreak 在任何循环语句的主体部分,都可以用 break 控制循环流程break 用于强行退出循环,不执行循环中剩余的语句(break 语句也在 switch 语句中使用)continue 语句用在循环语句体中,用于终止其中某一次的循环过程,就是跳过循环体中还未执行的语句,下一次的循环满足条件仍然可以继续向下执行break 程序案例:public static void main(String[] args) { for (int i = 0;原创 2021-08-28 23:47:22 · 120 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第03卷 流程控制 第04话 循环结构
循环结构while 循环语法结构:while (布尔表达式) { // 循环体(循环内容)}while 循环是最基本的循环布尔表达式为 true,循环就会一直执行程序中大多数情况,是需要程序循环到满足条件,都会让程序停下来极少数部分程序需要一直循环,循环条件一直为 true 会使程序无限循环(死循环),实际开发中,应避免程序陷入死循环,极大程度的会影响程序性能,甚至会造成程序卡死崩溃程序案例:public static void main(String[原创 2021-08-28 23:46:44 · 141 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第03卷 流程控制 第03话 选择结构
选择结构Java中选择结构多样,包含 if 单选择结构、if 双选择结构、if 多选择结构、嵌套的 if 结构和 switch 多选择结构if 单选择结构语法结构:if (布尔表达式) { // 如果布尔表达式为true,则执行}生活中通常会遇到一些特殊情况,例如:如果我能在中午12点之前到北京,我就去吃北京全聚德烤鸭程序中很多时候也需要处理特殊情况,如果可行才会去执行特殊的程序,这样的一个过程,在程序中使用 if 语句来进行表示程序案例:public static v原创 2021-08-28 23:43:58 · 106 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第03卷 流程控制 第02话 顺序结构
顺序结构顾名思义就是按照顺序执行的程序Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一步一步执行顺序结构是最简单哒算法结构程序与程序之间是按照从上往下的顺序进行执行的,由若干的依次执行的处理步骤组成顺序结构是任何一个算法都离不开的基本算法结构...原创 2021-08-28 23:42:35 · 117 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第03卷 流程控制 第01话 Scanner用户交互
Scanner用户交互Scanner对象Java给程序员提供了一个工具类,可以实现程序与人之间的交互,可以获取人的输入java.utils.Scanner是Java5的新特性,可以通过Scanner类来获取用户的输入基本语法Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,可以使用hasNext()与hasNextLine()方法判断是否有输入的数据public static v原创 2021-08-28 23:41:50 · 122 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 番外1 原码 反码 补码
原码 反码 补码博客整理自原码, 反码, 补码 详解 - ziqiu.zhang - 博客园 (cnblogs.com)机器数与真值在学习原码、反码和补码之前,需要先了解什么是机器数,什么是真值机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1,计算机字长为8的整数倍,最小字长是8位十进制数 +3 ,转换成二进制是 00000011十进制数 -3 ,转换成二进制是 1000001100000011 和 100原创 2021-08-28 23:37:54 · 124 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 第07话 包机制与JavaDoc生成文档
包机制与JavaDoc生成文档包机制为了更好的组织类,Java提供了暴击值,用于区别类名的命名空间包语法格式package pkg1[. pkg2[, pkg3...]] // 包可以理解为文件夹与子文件这样的关系// 例子:package com.soft.www.operator;// 类路径:com.soft.www.operator.Operator企业中一般将公司域名倒置作为包名为了能够使用某一包下的成员,我们需要在Java程序中明确导入该包原创 2021-08-28 23:30:09 · 132 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 第06话 运算符
运算符Java语言支持的运算符:算术运算符:+, -, *, /, %, ++, –赋值运算符:=关系运算符:>, <, >=, <=, ==, !=, instanceof(面向对象会学到)逻辑运算符:&&, ||, !位运算符:&, |, ^, ~, >>, <<, >>>条件运算符:? : (又叫三目运算符)扩展赋值运算符:+=, -=, *=, /=, %=, &=, |=,原创 2021-08-28 23:28:14 · 397 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 第05话 变量 常量 作用域
变量 常量 作用域变量变量是什么:可以变化的量Java是一种强类型语言,每个变量都必须声明其类型(先定义再使用)Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域type varName = [=value] [{, varName[=value]}];// 数据类型 变量名称 = 值;// 可以使用逗号隔开来声明多个同类型变量(不推荐)public static void main(String[] args) { // int a,b,c原创 2021-08-28 23:24:23 · 142 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 第04话 类型转换
类型转换Java是强类型语言,在进行有些运算时,需要用到类型转换低----------------------->--------------------------->高byte, short, char --> int --> long --> float --> double运算中,不同类型的数据先转化为同一类型,再进行运算高容量转换为低容量需要进行强制转换,低容量转换高容量自动转换数据类型转换时,有一些特殊的类型会出现精度丢失或内存溢出问题原创 2021-08-28 23:19:23 · 132 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 第04话 JDK JRE JVM
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK), 在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jreJRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)JVM是Java Vi.原创 2021-02-16 00:21:48 · 161 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 番外2 Markdown 语法详解
标题等级(此处没有在 # 字符后增加空格,方便展示)#一级标题##二级标题###三级标题字体加粗 你好!!斜体 你好!!加粗斜体 你好!!横线 你好!!引用(>加空格实现引用)这是引用分隔符(三个***加回车符代表分隔符)图片(感叹号!加[]和(),[]中为图片名称,()中为图片的地址路径(可以是网络图片或者本地图片))超链接([]加上(),[]中为超连接名称,()中为超链接地址)这是超链接列表有序列表1.加空格会实现有序数字列表aabb原创 2021-05-04 21:08:23 · 181 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 第03话 Java三大版本
JavaSE:标准版(桌面程序,控制台开发)JavaME:嵌入式开发(手机、小家电)(基本上已经不使用)JavaEE:企业级开发(Web端、服务器开发)原创 2021-02-16 00:03:44 · 130 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 第05话 安装生态环境
Java开发环境搭建JDK(Java Development Kit) 就是Java 程序开发的工具包,即Java的SDK。JDK 是整个Java的核心,包括了Java的开发环境和运行环境(Java Runtime Envirnment)以及一堆Java工具(tools.jar)和Java基础的类库(rt.jar) 等JRE(Java Runtime Environment,即Java运行环境),是运行JAVA程序所必须的环境的集合,包含JVM标准实现、Java核心类库(API)及支持文件,但原创 2021-02-16 01:24:43 · 465 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 番外4 IntelliJ IDEA安装
为什么要使用IDE在实际开发过程中,不能总使用记事本去进行程序开发,因为开发工程量太过庞大,并且无法进行程序的调试工作,所以需要一个开发工具去解决这些问题,IDE解决了这一系列的问题市面上常用的IDE(集成开发平台),主要有eclipse、Myeclipse、NetBeans、jbuilder和IntelliJ IDEA等目前个人觉得最好和最常使用的开发平台是IntelliJ IDEA,通常我们管它叫IDEAIntelliJ IDEA的安装IDEA的下载在IDEA官网找到下载页面,并下载旗原创 2021-05-05 19:11:59 · 123 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 番外1 常用DOS命令
打开cmd的方式 1.开始+系统+命令提示符 2.Win键+R键 输入cmd打开控制台(推荐使用) 3.在任意文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口 4.资源管理器的地址栏前面加上cmd路径常用的DOS命令#盘符切换C:#查看当前目录下的所有文件dir#切换目录 change directory 简写cdcd 目录#返回上一级目录cd ..#跨盘符切换目录cd /d F:#清理屏幕 clear screencls#..原创 2021-05-04 20:52:30 · 101 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 第07话 程序简要运行机制
编译型语言和解释型语言编译型:程序在执行前需要一个专门的编译过程,把程序编译为机器语言文件,运行时不需要重新翻译,直接使用编译的结果。程序执行效率高,依赖编译器,跨平台性差(例如C/C++、操作系统等)解释型:程序不需要编译,程序在运行时才翻译成机器语言(例如网页型语言、Python、JavaScript、Perl、Shell等)程序简要运行机制(Java具备编译和解释两个类型)...原创 2021-02-16 01:39:56 · 205 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 第02话 关键字和标识符
关键字生活中每个人或每个事物都有自己的名字,那这个名字是怎么来的呢,是不是都由造物主而来,比如我们自己就是父母或长辈给自己取的名字,再比如科学发明是不是都由发明出来的科学叫去进行命名的呢在Java程序中,也有一些Java语言创建之初而有的一些名字,只不过他们都有一个共称叫做关键字以下便是Java中的关键字abstract assert boolean break bytecase原创 2021-05-05 19:17:01 · 122 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第02卷 语法 第01话 注释
注释平时编写程序代码时,代码量在很少的时候,还能够记得和看懂自己写的程序,但是项目结构复杂并且时间长了之后,我们不一定会都记得,这个时候呢就需要用到程序的注释了注释不会被程序所执行,是供编程的人员看的给程序书写注释是写程序的一个好习惯,是一个成为好的程序员的素养Java中的注释有三种:public void static main(String[] args){ // 1.这是单行注释 /* 2.这是多行注释 */ /** * 3.这是文档注释原创 2021-05-05 19:15:13 · 140 阅读 · 0 评论 -
Java修炼之凡界篇 筑基期 第01卷 入门 第01话 Java诞生
C & C++1972年C语言诞生①贴近硬件,运行极快,效率极高 ②操作系统,编译器,数据库,网络系统 ③指针和内存管理1982年C++语言诞生①面向对象②兼容C语言③图形领域、游戏等Java萌芽因为C与C++种种不合理缺点,Java应运而生:语法与C语言相似没有指针概念没有内存管理真正的可移植性,编写一次,到处运行面向对象类型安全高质量类库Java语言诞生,起初语言名字Oak,注册时已经被使用,后更名为Java(咖啡杯形状)为了保证跨平台原创 2021-02-15 23:58:51 · 240 阅读 · 0 评论