Java
文章平均质量分 56
sleepingposture
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单例模式的几种实现方式
import java.util.Random;public class Test{ public static void main(String[] args) { Singleton instance = Singleton.getInstance(); System.out.println(instance); Singleton instance2 = Singleton.getInstance(); System.out.原创 2021-03-23 10:25:02 · 174 阅读 · 0 评论 -
HashMap源码分析(逐句解析)
今天学习了HashMap的源码分析,然后自己跟着源码走了一遍,写了一些总结,嘿嘿。核心属性分析既然要学习HashMap,那我们肯定要知道他有哪些属性,不然方法就更看不懂了。推荐可以看一下这一篇博客:https://blog.youkuaiyun.com/fan2012huan/article/details/51087722,通过反射进行测试,可以更好的理解属性的意义。重要属性如下://HashMap核心属性分析 //默认数组容量大小为16 static final int DEFAULT_INI原创 2021-03-12 19:31:35 · 211 阅读 · 1 评论 -
ArrayList及LinkedList源码分析
jdk7的情况利用无参构造ArrayList list = new ArrayList();创建一个ArrayList会在底层创建一个长度为10的Object数组;调用add方法之后,list.add(123)之后直接将ObjectArray[0]=new Integer(123);当添加元素超过10之后,例如添加第十一个元素,此时数组容量不够需要进行扩容操作,数组会扩容为原始数组长度的1.5倍,同时需要将原有数组的数据复制到新的数组中。建议在开发中使用带参数的构造器:ArrayList lis原创 2021-03-05 21:54:22 · 185 阅读 · 2 评论 -
Spring中Bean的生命周期
Spring中Bean的生命周期实例Spring中Bean的生命周期大致分为如下几步:1、通过构造器创建Bean实例2、调用set函数对Bean完成属性的填充以及对其他bean的引用3、调用bean实例的初始化方法4、此时已经可以获取bean对象,可以使用了5、关闭容器后,调用bean实例的初始化方法实例演示首先导入Spring的依赖以及Junit依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http原创 2021-03-04 21:20:21 · 162 阅读 · 1 评论 -
毕25-第七天(day12)-多线程(线程间通信)
线程间通信 线程间通信其实就是多个线程在操作同一个资源,但是操作的动作不同,下面需要实现一个需求:有一个输入操作和一个输出操作,一边向缓冲区中存数据,一遍从缓冲区中取数据:class Res{ String name; String sex;}class Input implements Runnable{ private Res r; Input(Res r){ this.r = r; } public void run() { int x = 0; while..原创 2020-05-12 16:32:01 · 265 阅读 · 0 评论 -
毕25-第六天(day11)-多线程
多线程创建及运行 进程是一个正在执行的程序,每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。线程就是进程中的一个独立的控制单元,线程在控制着进程的执行。一个进程中至少有一个线程。JavaVM启动的时候会有一个进程java.exe,该进程中至少有一个线程负责Java程序的执行,而且这个线程运行的代码存在于main方法中,该线程称之为主线程。扩展:其实更细节的说,jvm启动的不止一个线程,还有负责垃圾回收机制的线程。Java已经提供了对线程这类事物的描述,即..原创 2020-05-11 22:43:34 · 203 阅读 · 0 评论 -
毕25-第五天(day10)-面向对象(异常)
finally关键字 在下面的例子中,finally中语句,以及后面的输出over语句都执行了:class FuShuException extends Exception{ FuShuException(String msg){ super(msg); }}class Demo{ int div(int a,int b)throws FuShuException{ if(b<0) { throw new FuShuException("除数为负数"); }..原创 2020-05-10 23:27:45 · 165 阅读 · 0 评论 -
毕25-第四天(day09)-面向对象(异常)
异常概述 异常就是程序在运行时出现的不正常情况。异常的由来:出现问题是现实生活中一个具体的事物,所以可以通过Java的类来描述,并封装为对象。所以异常就是Java对于不正常情况进行描述后的对象体现。如下面的除零操作:class Demo{ int div(int a,int b) { return a/b; }}class Test{ public static void main(String[] args) { Demo d = new Demo(); d.di..原创 2020-05-09 22:19:24 · 161 阅读 · 0 评论 -
毕25-第三天(day09)-面向对象(内部类)
内部类访问规则 内部类的访问规则:1、内部类可以直接访问外部类中的成员,包括私有成员。之所以可以直接访问外部类中的成员,是因为内部类持有了一个外部类的引用,格式为:外部类名.this。2、外部类要访问内部类,必须建立内部类对象。看如下案例:class Outer{ private int x = 3; class Inner{ void function() { System.out.println("inner:"+x); } } void method()..原创 2020-05-08 23:58:29 · 199 阅读 · 0 评论 -
毕25-第二天(day08)-面向对象(多态)
多态的扩展性 假设有如下几个类:abstract class Animal{ abstract void eat();}class Cat extends Animal{ public void eat() { System.out.println("吃鱼"); } public void catchMouse() { System.out.println("抓...原创 2020-05-07 22:10:25 · 190 阅读 · 0 评论 -
毕25-第二天(day07)-面向对象(继承与接口)
继承 在下面的例子中有两个类,Student、Worker。class Student{ String name; int age; void study(){ System.out.println("study"); }}class Worker{ String name; int age; void w...原创 2020-05-07 14:00:34 · 172 阅读 · 0 评论 -
毕25-第一天(day06)-面向对象(设计模式之单例设计模式)
单例设计模式 设计模式:解决某一问题最行之有效的方法。Java中有23种设计模式。单例设计模式:解决一个类在内存中只存在一个对象。想要保证对象唯一,有如下要求:1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象;2、还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象;3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。这三个要...原创 2020-05-06 21:21:54 · 220 阅读 · 0 评论 -
毕25-第一天(day06)-面向对象
static关键字 static是一个静态的修饰符,用于修饰成员(成员变量、成员函数)。当成员被静态修饰后,就多了一个调用方式,除了可以使用对象调用,还可以直接被类名调用,类名.静态成员。class Person{ String name; //实例变量,或成员变量 static String country = "CN"; //静态成员变量,或类变量 publi...原创 2020-05-06 20:09:59 · 162 阅读 · 0 评论 -
毕25第一天-面向对象
面向对象与面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。直观的例子:人开门。面向过程思想:1、打开门;2、关闭门。面向对象思想:将人和门分为两个对象,每个对象有不同的方...原创 2020-05-06 12:18:30 · 207 阅读 · 0 评论 -
Java——方法的参数总是使用值传递
在C语言中函数的参数有值传递方式以及地址传递方式两种,但是在Java中只有值传递这一种方式。案例一:在下面的例子中执行将a乘以3int a = 10;three_a(a);方法three_a()的部分如下:public static void three_a(int x){ x = x*3;}将a传入方法中,经过调用three_a()方法之后,首先x=10...原创 2020-05-04 21:05:21 · 248 阅读 · 0 评论 -
Java——不规则多维数组的构建
普通多维数组的构建相对来说都是规则的,比如定义一个二维数组:int[][] a = new int[10][5],这个数组是一个10行5列的二维数组。上述构建的二维数组是每行的列数都是相同的,但是对于想构建每一行的列数有所不同的数组,则需要其他的定义方式。在Java中,实际上没有多维数组,只有一维数组,多维数组称为“数组的数组”;对于一个二维数组来说,首先把它看作一维数组,这个一维数组中的...原创 2020-05-03 19:21:16 · 936 阅读 · 0 评论 -
Java 方法——基本类型参数的绑定与引用类型参数的绑定
原文链接:https://blog.youkuaiyun.com/wentianwwl/article/details/102757152基本类型参数的绑定class 基本类型参数绑定01 { public static void main(String[] args){ Person p = new Person(); int n = 15; ...转载 2019-11-05 11:38:32 · 1601 阅读 · 1 评论
分享