
Java
猫不夜行
静水流深,物我两忘
展开
-
Java简单介绍运行机制
1. 基础知识点图解编程语言核心结构:变量、基本语法、分支、循环、数组、…… Java面向对象的核心逻辑:OOP、封装、继承、多态、接口…… 开发Java SE高级应用程序:异常、集合、I/O、多线程、反射机制、网络编程……2. 各种语言对比名称 适用对象 C 操作系统、嵌入式领域、数据库、服务器、单片机、编译器、Linux开发 C++ 开发桌面软...原创 2019-07-09 21:42:00 · 204 阅读 · 0 评论 -
JDK安装配置
1. 下载、安装JDK官方网址:https://www.oracle.com/technetwork/java/javase/downloads/index.html点击进入下载所需版本的JDK,我用的是:jdk-8u131-windows-x64.exe安装过程直接下一步即可。建议:安装路径不要有中文或者特殊符号如空格等。2. 配置环境变量。右击——计算机——属性——高级系...原创 2019-07-09 22:01:00 · 91 阅读 · 0 评论 -
JDK安装中配置Path无效解决办法
1. 问题在安装jdk后,配置完环境变量,然后在控制台输入java -version出现与安装版本不一致的版本,如安装1.8后version仍显示1.7,即:修改环境变量没有生效且原先存在安装过的JDK版本。2. 原因1)原先版本的JDK安装后将java.exe、javaw.exe、javaws.exe复制到C:\Windows\System32目录,这个目录在WINDOWS环境变量...原创 2019-07-09 22:37:00 · 794 阅读 · 0 评论 -
Java文件手动编译执行步骤
Java编译执行步骤:1)将 Java 代码编写到扩展名为 .java 的文件中。2)通过 javac 命令对该 java 文件进行编译。3)通过 java 命令对生成的 class 文件进行运行。编译示例:1. 新建文本文档Test.java1 public class Test2 {3 public static void main(String[] ...原创 2019-07-09 23:10:00 · 828 阅读 · 0 评论 -
Java程序基本框架
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。(Java是以类为组织单位) 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。 1 public c...原创 2019-07-10 08:22:00 · 143 阅读 · 0 评论 -
Java转义字符
转义字符 意义 ASCII码值(十进制) \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位...原创 2019-07-10 08:46:00 · 96 阅读 · 0 评论 -
Java文档注释
1 import java.io.*; 2 3 /** 4 * 这个类演示了文档注释 5 * @author Mort 6 * @version 1.2 7 */ 8 public class SquareNum { 9 /**10 * This method returns the square of num.11 * This is a mul...原创 2019-07-10 08:51:00 · 90 阅读 · 0 评论 -
Java内置数据类型
Java 的两大数据类型:内置数据类型、引用数据类型Java语言提供了八种内置数据类型,包括六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。类型 字节数 位数 最小值 最大值 默认值 备注 例子 byte 1 8位 -128(-27) 127(27-1) 0 大型数组中代替整数节...原创 2019-07-10 09:18:00 · 108 阅读 · 0 评论 -
Java基本数据类型之间转换
一、自动类型转换转换的过程自动发生规则:小——>大byte->short->int->long->float->doublechar类型识别为int,可以转成int,不可自动转成byte、short二、强制类型转换转换的过程强制发生规则:大——>小语法:类型 变量名 = (类型)值;自增/自减运算符、复合赋值运算符底层做了...原创 2019-07-10 10:21:00 · 112 阅读 · 0 评论 -
Java高级数据类型转换:包装类、String字符串、Date类等与其他类型转换
1、包装类过渡类型转换一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:当希望把float型转换为double型时:float f1=100.00f;Float F1=new Float(f1);double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值...原创 2019-07-10 10:54:00 · 143 阅读 · 0 评论 -
Java运算符总结
算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 Java运算符优先级算术运算符假设整数变量A的值为10,变量B的值为20:操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 ...原创 2019-07-10 11:10:00 · 75 阅读 · 0 评论 -
Java程序控制结构
分支结构 循环结构 跳转结构一、分支结构概念:程序从两条或多条路径中选择一条去执行,这种结构称为分支结构1. if结构特点:① 条件表达式的形式可以为:boolean的变量boolean变量的赋值关系表达式逻辑表达式(只要最终结果为boolean类型即可)② 大括号中的执行语句,可以为0条或任意多条,而且可以是任意的打印、变量、运算、if结构等③ 当大...原创 2019-07-10 12:39:00 · 199 阅读 · 0 评论 -
Java数组的使用
一、数组的动态初始化1、声明数据类型[] 数组名;或数据类型 数组名[];2、开辟空间数组名 = new 数据类型[长度];//长度必不可少3、手动赋值数组名[下标] = 值;4、使用(打印、运算、判断等)System.out.println(数组名[下标]);【注意事项】① 数组的元素如果不赋值,也有默认值int 0double 0.0char \u0000...原创 2019-07-10 13:04:00 · 142 阅读 · 0 评论 -
Java类和对象的内存分配
类的加载时机:1、创建对象2、调用类的静态成员3、加载子类类在实例化后的内存分配1、每次创建对象时,都需要进行加载和创建2个操作:① 先去判断需要的类是否已经加载,如果已经加载了,则无需再加载,如果没有加载,则需要通过类加载器加载类信息到方法区② 在堆中创建新对象2、栈、堆、方法区的存储栈:对象的引用、局部变量堆:对象和全局变量(属性)方法区:类信息、...原创 2019-07-10 13:28:00 · 599 阅读 · 0 评论 -
Java可变参数方法
概念:jdk5.0出现的新特性。将同一个类中,多个方法名相同、参数类型相同、返回类型相同,仅仅是参数个数不同的方法抽取成一个方法,这种方法称为可变参数的方法好处:提高代码的重用性和维护性语法:修饰符 返回类型 方法名(参数类型... 参数名){ ... ...}注意:使用时,将可变长度的参数当做数组使用,等价于:修饰符 返回类型 方法名(参数类型[] 参数名){...原创 2019-07-10 15:33:00 · 110 阅读 · 0 评论 -
Java包的使用
好处1、类似于文件系统的文件夹,可以实现分类管理类文件,方便查找2、解决了同一个项目中同名类的冲突问题包的创建命名规范:建议小写字母,并且采用域名倒置的写法域名倒置:com.baiduwww.baidu.comwww.atguigu.com建议写法:com.公司名.部门名.项目名.业务模块名;com.项目名.业务模块名;com.atguigu.业务模块名;包...原创 2019-07-10 16:23:00 · 117 阅读 · 0 评论 -
JDK中主要包的介绍
java.lang——包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。java.net——包含执行与网络相关的操作的类和接口。java.io——包含能提供多种输入/输出功能的类。java.util——包含一些实用工具类,如定义系统特性、接口的集合框架类、使用与日期日历相关的函数。java.text——包含了一些java格式...原创 2019-07-10 16:39:00 · 141 阅读 · 0 评论 -
Java中修饰符
一、访问控制修饰符理解:访问修饰符用于修饰类和类的成员,放在要修饰的类或类的成员(如属性和方法)前面,用于限定访问权限。修饰符 修饰对象 类内部 同一个包 不同包的子类 任何地方 private 类的成员 Yes (缺省) 类和类的成员 Yes Yes protect...原创 2019-07-10 21:28:00 · 104 阅读 · 0 评论 -
Java继承:super关键字、构造器、final用法
一、继承继承好处1、提高代码的重用性2、提高代码的扩展性和维护性3、为多态打下了基础继承类型继承子类创建对象的过程二、super关键字的使用理解:super代表父类的引用,用于访问父类的属性、方法、构造语法访问父类的属性:super.属性名 = 值;访问父类的方法:super.方法(实参列表);访问父类的构造:super(实参列表);注意...原创 2019-07-10 22:14:00 · 132 阅读 · 0 评论 -
Java方法多态性——方法的重载Overload和重写Override
方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方...原创 2019-07-10 22:50:00 · 272 阅读 · 0 评论 -
Java对象多态性——对象的转型(引用类型之间的类型转换)
Java引用变量有两个类型:编译时类型和运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。若编译时类型和运行时类型不一致,就出现多态正常的方法调用(本态调用)Person e = new Person();e.say();Student e = new Student();e.say;虚拟方法调用(多态情况下)Perso...原创 2019-07-10 23:10:00 · 214 阅读 · 0 评论 -
Java多态性应用——多态数组、多态参数
多态数组:Person[] person = {new Person("张三", 32), new Student("李四", 21, 120, 90.0), new Student("王五", 22, 119, 91.5), ...原创 2019-07-10 23:39:00 · 226 阅读 · 0 评论 -
Java设计模式——单例模式(static修饰)
1、类的构造器私有化2、本类内部创建对象(用本类内部public static静态方法返回该静态对象)3、创建静态变量指向该类。饿汉式和懒汉式的差异:1、创建对象的时机不同!(饿汉模式在使用静态类时创建加载对象;懒汉模式在静态方法时加载创建对象)2、应用场合不同如果仅仅考虑效率问题,可以使用懒汉式如果考虑线程安全问题,可以使用饿汉式(懒汉式容易出现数据错乱问题)...原创 2019-07-17 20:30:00 · 249 阅读 · 0 评论 -
Java初始化块及执行顺序
理解初始化块又称为代码块。属于类中的第四大成员。本质上是一个方法,它也有方法体,但没有方法名,没有参数,没有返回,而且也不是通过对象或类名显式调用,而是通过隐式调用是构造器的补充语法[修饰符]{ 方法体}注意:①修饰符只能是static,使用static修饰的初始化块称为静态初始化块没有使用static修饰的初始化块称为普通初始化块//静态初始化...原创 2019-07-17 21:01:00 · 108 阅读 · 0 评论 -
Java设计模式——模板方法设计模式(abstract修饰)
解释:一个抽象类中,有一个主方法,再定义 1...n 个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用。解决的问题:当功能内部一部分实现是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。编写一个抽象父类,父类提供了多个子类的通用方法,并把一个或多个方法留给其子类实现,就是一种模板模式。...原创 2019-07-17 22:11:00 · 131 阅读 · 0 评论 -
Java接口
理解里面有抽象方法的类,称为抽象类【半成品】里面全是抽象方法的抽象类,称为接口。生活的案例:张三丰:接口宋远桥:抽象类太极拳:出神入化太极剑:差一点宋青书:具体类接口——抽象类——具体类一流企业卖标准,二流企业卖服务,三流企业卖产品好处1、避免了java中单继承的局限性2、接口的实现更加灵活,不再是is-a的关系而是like-a的关系3、接口提...原创 2019-07-18 13:56:00 · 198 阅读 · 0 评论 -
Eclipse查看jdk源码(Ctrl+左键)
Window->Preferences->Java->Installed JREs->选中jdk->Edit->选中rt.jar->source attachment configuration->external file selection->src.zip...原创 2019-07-18 14:43:00 · 144 阅读 · 0 评论 -
Eclipse常用快捷键
快捷键 描述 编辑 Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等) Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+M 添加类的import导入 Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的...原创 2019-07-18 14:50:00 · 78 阅读 · 0 评论 -
Java内部类
理解:一个类中又完整的嵌套了另一个类结构,被嵌套的类称为内部类。外面的类称为外部类,和内部类无关的外部类称为外部其他类。class A{ // B的外部类 String name; public void method(){ for(){ int i; class B{ // A的内部类 ...原创 2019-07-18 16:55:00 · 79 阅读 · 0 评论 -
Java枚举enum关键字
枚举的理解枚举其实就是一个类,枚举类的实例是一组限定的对象传统的方式创建枚举 【了解】对比:单例类1、构造器私有化2、本类内部创建对象3、通过public static方法,对外暴露该对象枚举类1、构造器私有化2、本类内部创建一组对象,添加public static修饰符,直接暴露对象/** * 此类用于演示使用传统的方式创建枚举 * 步骤 * ...原创 2019-07-18 17:20:00 · 299 阅读 · 0 评论 -
Java异常
1.Java异常事件Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问 试图读取不存在...原创 2019-07-21 23:06:00 · 117 阅读 · 0 评论 -
Java中的常用类:包装类、String、StringBuffer、StringBuilder、Math、System、Arrays、BigInteger、BigDecimal、Data...
一、包装类 √二、String类 ★三、StringBuffer和StringBuilder类 ★四、Math类五、System类六、Arrays类七、BigInteger类和BigDecimal类八、Date日期类、Calendar日历类以及新的日期一、包装类1.概念:为8大基本数据类型对应的提供了引用数据类型,则这些引用数据类型称为包装类2.数据类型:...原创 2019-07-22 00:12:00 · 154 阅读 · 0 评论 -
Java集合:Collection、List、Set、Map、泛型
1.集合的理解和好处2.集合的框架体系图 ★3.Collection接口的特点和使用 ★4.List和Set接口的特点和使用★5.List接口的实现类学习★6.Set接口的实现类学习★7.Map接口的特点和使用★8.Map接口的实现类学习★9.Collections工具类的使用★10.泛型的使用★0.集合的学习思路层面1:应用层面 √可以掌握重点的...原创 2019-07-23 10:06:00 · 170 阅读 · 0 评论 -
Java中获取大小:length、length()、size()
1. java 中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了 length 这个属性.2. java 中的length()方法是针对字符串说的,如果想看这个字符串的长度则用到length()这个方法.3. java 中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看...原创 2019-07-23 18:37:00 · 955 阅读 · 0 评论 -
Java集合概括总结及集合选用
Collection1. ListArrayList:Object数组,是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。 LinkedList :是一个双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环)。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率高。 Vect...原创 2019-07-23 20:49:00 · 115 阅读 · 0 评论 -
Java排序算法之冒泡排序
1. 介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。假设数组长度为n,冒泡排序共执行n-1次排序,在第i次排序中对从第一个元素到第n-i个元素进行两两遍历,如果右边小于左边则进行交换。优化:因为排序的过程中,各元素不断接...原创 2019-07-25 13:54:00 · 130 阅读 · 0 评论 -
Java排序算法之选择排序
1. 基本思想选择排序(select sorting)的基本思想是:1)对于一个大小为n的数组,选择排序共执行n-1轮排序2)每轮排序寻找到该轮最小的数放到开始位置上:先假定当前这个数是最小数 然后和后面的每个数进行比较,如果发现有比当前数更小的数,就重新确定最小数,得到下标 当遍历到数组的最后时,就得到本轮最小数和下标 进行数据交换选择排序的时间复杂度为:O(n2)...原创 2019-07-25 14:09:00 · 97 阅读 · 0 评论 -
Java排序算法之插入排序
1.插入排序(Insertion Sort)基本思想把n个待排序的元素看成为一个有序表和一个无序表 开始时有序表中只包含一个元素,无序表中包含有n-1个元素 排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置 使之成为新的有序表。插入排序的时间复杂度为:O(n2)2.图解3. 代码实现1)循环实现...原创 2019-07-25 14:45:00 · 142 阅读 · 0 评论 -
Java排序算法之希尔排序
1.插入排序存在问题数组 arr = {2,3,4,5,6,1} ,在需要插入的数 1(最小)时,过程为:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论:当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响。2. 希尔排序介绍希尔排序是希尔(Do...原创 2019-07-25 20:11:00 · 95 阅读 · 0 评论 -
Java排序算法之快速排序
1. 快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。2. 基本思想:(分治)先从数列中取出一个数作为key值; 将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边; 对左右两个小数列重复第二步,直至各区间只有1个数。(通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分...原创 2019-07-25 22:25:00 · 102 阅读 · 0 评论