Java基础
我不是忘尘
一只喜欢古风歌的程序猿
展开
-
Java单例模式的5种实现
这里写目录标题只适用于单线程的单例懒汉式饿汉式加同步锁使上一单例满足多线程加同步锁前后两次判断实例是否存在用静态内部类用枚举只适用于单线程的单例懒汉式把构造函数设为私有来禁止其他类创建实例,定义一个静态的Instance只在为空时创建实例,其他类通过public 的getInstance方法来获取这个唯一的实例public class Singleton1 { private static Singleton1 instance = null; private Singleton1(原创 2020-07-22 20:21:15 · 114 阅读 · 0 评论 -
Java访问权限
目录访问修饰符static修饰符修饰变量静态变量修饰方法修饰代码块静态导入访问修饰符访问修饰符修饰类和类的成员Java将类成员的可见度分为四个种类:访问修饰符本类同包子类private✓默认✓✓protected✓✓✓(不同包子类也可以访问)public✓✓✓static修饰符修饰变量class 类名{ publ...原创 2020-03-25 12:12:55 · 229 阅读 · 0 评论 -
Java 封装、重载、重写
目录封装重载方法重载与重写的区别重写规则封装封装:隐藏类的属性和实现细节,对外提供公共的访问方式。好处:1) 程序更安全2)访问器中可以灵活的使用流程控制语句3)用户只能用我们提供的访问方式来访问。class Person{ // private :访问修饰符 只能在声明它的类中使用 private int age;// 10 // 间接访问 服务员 // setter 访问...原创 2020-03-25 00:01:52 · 251 阅读 · 0 评论 -
Java二分查找法
public static void main(String[] args) { // 二分查找法 int [] arr = {1,5,7,9,3}; // 前提:数列有序 int temp; // 冒泡升序排序 for(int i = 0 ; i < arr.length - 1; i ++){ boolean isSorted = true; for(...原创 2020-03-24 22:32:48 · 125 阅读 · 0 评论 -
Java简单实现选择排序
原理:某一个位置 与后边所有的元素比较排序。public static void main(String[] args) { // 选择 int [] arr = {11,23,56,2,4}; int temp; for(int i = 0; i < arr.length - 1; i ++){// 位置 for(int j = i + 1;j < arr.l...原创 2020-03-24 22:26:23 · 91 阅读 · 0 评论 -
Java实现冒泡排序并优化
原理:相邻的两个数字比较大小排序。思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。比较第2和第3个数,将小数 放在前面,大数放在后面。如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成在上面一趟比较完成后,最后一个数一定是数组中最大的一个数,所以在比较第二趟...原创 2020-03-24 22:20:02 · 118 阅读 · 0 评论 -
Java数组
目录数组存储创建和使用数组动态初始化静态初始化注意事项数组的遍历数组存储public static void main(String[] args) { int n = 5; n = 6; int [] arr; arr = new int[3];// 创建数组 }内存图:创建数组声明的是一个引用类型栈存放基本数据类型和引用堆存放对象(数组对象、对象)所以创建一个...原创 2020-03-24 22:01:12 · 71 阅读 · 0 评论 -
Java运算符
目录运算符分类算数运算符自增自减运算符关系运算符逻辑运算符&& 和 & ,|| 和 | 的区别。扩展赋值运算符条件运算符位运算符运算符优先级运算符分类根据 功能: 算术,关系,逻辑,赋值,位…根据 操作数的个数: 一元,二元,三元算数运算符自增自减运算符关系运算符逻辑运算符&& 与|| 或!非语法:参与逻辑运算的操作数 必须...原创 2020-03-24 20:36:33 · 117 阅读 · 0 评论 -
Java数据类型笔记
目录变量相关变量命名规则变量命名规范变量的注意事项Java关键字数据类型整型浮点型字符型布尔类型变量相关Java的数据类型是强类型:所以变量一定要先声明;声明的类型与 值相符。变量命名规则 1) 由字母 、数字、下划线_、 $组成; 2) 不能以数字开头; 3) 不能是java的关键字; 4) 不能是字面值 true,false,null...原创 2020-03-24 19:55:32 · 322 阅读 · 0 评论 -
Java枚举类型
目录什么是枚举类应用枚举类定义一个抽象枚举类测试枚举类什么是枚举类枚举类就是一组常量值的封装。有时候,变量的取值只在一个有限的集合内,例如红绿灯只有红、黄、绿三种取值。在这种情况下,可以自定义枚举类型enum Color{ RED,YELLOW,GREEN;}Color color = Color.RED;Color类型的变量只能存储这个类型声明中给定的值,或者null注意:...原创 2020-03-18 16:15:47 · 151 阅读 · 0 评论 -
Java异常处理
目录什么是异常处理异常分类常见异常异常处理方式声明已检查异常异常的抛出与捕获try-catch-(finally)再次抛出异常finally子句自定义异常类什么是异常处理假设在一个Java程序运行期间出现了一个错误,这个错误可能是由于文件包含了错误信息,或者网络连接出现问题造成的,也有可能是因为使用无效的数组下标,或者试图使用一个未赋值的对象引用而造成的。用户期望再出现错误时,程序能够采用一些...原创 2020-03-18 15:41:56 · 335 阅读 · 0 评论 -
Java比较器-Comparable和Comparator
目录比较器的作用Comparable接口Comparator接口比较器的作用在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。通常对象之间的比较可以从两个方面去看:第一个方面:对象的地址是否一样,也就是是否引用自同一个对象。这种方式可以直接使用“==“来完成。第二个方面:以对象的某一个属性的角度去比较。在JDK8中,有三种实现对象比较的方法:覆写Objec...原创 2020-03-17 12:03:18 · 241 阅读 · 0 评论 -
Java泛型基础
目录什么是泛型使用泛型的好处泛型类通配符泛型方法泛型类中的泛型方法静态方法与泛型泛型类派生出的子类子类明确泛型类的类型参数变量什么是泛型泛型,即“参数化类型”,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制...原创 2020-03-16 22:21:39 · 108 阅读 · 0 评论 -
Java之lambda表达式
Lambda表达式用于实现只包含一个方法的接口即函数式接口,可以使其方法的实现过程更简洁,但随之也使表现形式更加抽象。接口中的方法的参数列表和返回值共有5种形式,分别为无参无返回值、无参有返回值,有参无返回值(一个参数),有参无返回值(多个参数),有参有返回值接下来用例子来实现一下:为了方便我将五个方法都写在了一个接口中,读者请注意实际编写的时候里面是只能有一个方法的@Functional...原创 2020-03-13 15:06:07 · 142 阅读 · 0 评论