java
没有钢琴的肖邦
keep learning
展开
-
一文弄懂RESTful
文章目录一、概述二、Rest架构的主要原则三、什么是RESTful四、Spring对RESTful的支持一、概述自从Roy Fielding博士在2000年他的博士论文中提出REST(Representational State Transfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SOAP,成为Web API的标准了。网上看了很多,都是用一些抽象的定义来解释抽象的定...原创 2019-12-24 15:11:47 · 1056 阅读 · 0 评论 -
URL和URI的区别
初学java,最近被一个概念搞得头晕脑胀,就是url和uri的概念和区别,网上查了一大通,发现各种回答眼花缭乱,有百科直接粘贴的,有胡说八道的,有故意绕来绕去的,我估计他自己都没搞懂,按照马士兵的说法就是,通通都是一些冠冕堂皇的套话,说了等于没说,本来就是一个很抽象的概念,还用很抽象的的方式来答复,这不是让人虐心吗?经过我潜心研究了一番,把他们的区别分享给大家,我相信很多新手都不会一下子明白这两个...转载 2019-12-23 10:50:29 · 137 阅读 · 0 评论 -
java 动态代理
文章目录一、概述二、基于接口的动态代理1.介绍2.代码示例三、基于子类的动态代理1.介绍2.代码示例一、概述所谓的动态代理,需要一个代理类,这个代理类是动态生成的,那么这个任务就需要交给Java虚拟机来做了,由Java虚拟机来去动态的生成代理类,也就是动态代理,动态代理分为:基于接口的动态代理和基于子类的动态代理。特点:字节码要用的时候就创建,要用的时候就加载作用:在不修改源码的基础上对方...原创 2019-12-13 15:49:39 · 110 阅读 · 0 评论 -
Java设计模式之工厂模式
文章目录一、简单工厂模式1.概述2.实现二、工厂方法模式1.简述2.实现三、抽象工厂模式1.概述2.实现三、总结1.工厂模式优点2.工厂模式适用场景3.三种模型的区别一、简单工厂模式1.概述简单工厂模式也叫静态工厂模式,将所有的创建对象任务交给了一个工厂类来实现,要想使用对象,直接找工厂类即可。以动物工厂类为例,可以将创建动物对象的任务全放在动物工厂类来实现,在动物工厂类中定义静态方法,根...原创 2019-12-13 10:59:40 · 106 阅读 · 0 评论 -
Java设计模式之单例模式
文章目录1.概述2.实现单例模式的两种方法(1)饿汉单例模式(2)懒汉单例模式3.单例模式的优点4.单例模式使用场景5.单例模式注意事项1.概述什么是单例模式定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式包括:1.私有的构造方法2.指向自己实例的私有静态引用3.以自己实例为返回值的静态的公有方法2.实现单例模式的两种方法单例模式根据实例化对象时机...原创 2019-12-12 17:08:28 · 102 阅读 · 0 评论 -
Java类加载器和反射
文章目录一、类加载器1.类的加载2.类初始化时机(何时加载到内存中)3.类加载器的组成二、反射1.反射原理步骤2.获取一个类的class文件对象的三种方式3.获取class文件中的成员(1)使用反射获取无参的构造方法并运行(2)使用反射获取有参的构造方法并运行(3)反射获取构造方法并运行的快捷方式(4)反射获取私有构造方法并运行(暴力反射)(5)反射获得成员变量并修改(6) 反射获得成员方法并运行...原创 2019-12-12 15:25:02 · 136 阅读 · 0 评论 -
Java中多线程安全、同步、死锁、等待唤醒机制
文章目录一、线程安全二、线程同步1.同步代码块2.同步方法(1)普通方法同步(2)静态同步方法三、死锁四、lock接口五、等待和唤醒机制一、线程安全如果有多个线程在同时运行,而这些线程可能会同时运行这段代码,程序每次运行结果和单线程运行的结果是一样的,而且程序中的变量值和和预期的一样,那么线程就是安全的,如果不是,则线程不安全。下面通过售票的案例来理解一下线程安全问题//模拟售票类pub...原创 2019-12-11 15:16:05 · 109 阅读 · 0 评论 -
Java线程池
一、概述在Java中,创建和销毁线程花费的时间和消耗的系统资源都是相当大的,甚至可能要比在处理实际用户请求的时间和资源要多的多,除了创建和销毁线程的开销之外,活动的线程也需要消耗资源。如果在一个JVM中创建太多的线程,可能会使系统由于过度消耗内存或切换过度而导致系统资源不足,为了防止资源不足,需要采取一些办法来限制任何给定时刻处理的请求数目,尽可能减少创建和销毁线程的次数,尽量利用已有的对象来进...原创 2019-12-10 16:16:27 · 66 阅读 · 0 评论 -
Java多线程入门
一、概述1.多线程和单线程单线程:若有多个任务,只有当上一个任务执行结束后,下一个任务才开始执行多线程:若有多个任务,可以同时执行,即一个程序中有多个线程在同时执行2.调度方式在操作系统中,有很多种调度方式,这里介绍分时调度和抢占式调度,在Java中使用的是抢占式调度分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间抢占式调度:每个线程都有其优先...原创 2019-12-10 15:11:05 · 101 阅读 · 0 评论 -
java基础-ArrayList
1.特点ArrayList集合是程序中最常见的一种集合,属于引用类型,在AyyayList内部封装了一个长度可变的数组,当存储元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,可以看做ArrayList是一个长度可变的数组。导包:import java.util.ArrayList;集合的长度是可变的,数组的长度是固定的集合中存储的元素必须是引用类型数据...原创 2019-12-09 15:36:30 · 137 阅读 · 0 评论 -
java基础-final、static关键字
一、final关键字(最终的意思)final 修饰的类:最终的类,不能被继承final 修饰的变量:相当于一个常量,在编译生成 .class 文件后,该变量变为常量值final 修饰的方法:最终的方法,子类不能进行重写,但可以继承过来使用二、static 关键字(静态的意思)static 可以用来修饰类中的成员(成员变量、成员方法),也可以用来修饰成员内部类static 修饰的成...原创 2019-12-09 14:27:24 · 80 阅读 · 0 评论 -
java基础-内部类
1. 什么是内部类将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称之为内部类,其他类称之为外部类。在描述事物的时候,若一个事物内部还包含其他可能包含的事物,这时,就可以使用内部类来进行描述。我们在定义内部类的时候,就是一个正常定义类的过程,同样包含各种修饰符、继承与实现关系等,在内部类中可以直接访问外部类的所有成员eg:class 汽车{ // ...原创 2019-12-09 11:46:37 · 73 阅读 · 0 评论 -
win10配置jdk环境变量
1、首先要打开系统环境变量配置的页面。具体操作是:桌面上找到“此电脑”,然后右键 “属性”。然后打开高级系统配置2、然后在弹出的界面打开环境变量3、在弹出的页面,“系统变量区域”点新建按钮4、在新建页面输入"变量名"位 JAVA_HOME,输入“变量值”为你安装的JDK地址,参考下图5、在系统变量区域,选择"新建按钮"输入"变量名"为CLASSPATH,输入"变量值"为.;%J...原创 2019-12-08 20:41:13 · 123 阅读 · 0 评论 -
java基础-匿名对象
1. 匿名对象的创建匿名对象是指在创建对象时,只有创建对象的语句,却没有把对象地址赋值给某个变量如:创建一个普通对象Person P = new Person();创建一个匿名对象new Person();2.匿名对象的特点创建匿名对象可以直接使用,没有变量名new Person().work(); //work 方法被一个没有名字的 Person 对象调用了匿名对象...原创 2019-12-06 15:29:15 · 94 阅读 · 0 评论 -
java基础-重写
1. 什么是重写当子类需要父类的功能,而子类有新的内容,可以重写父类中的方法。在实际开发过程中,随着代码量的逐渐增加,维护成了一个很大的问题,如果需要对某个方法进行修改,其本身代码以及其子类代码都会受到影响,而重写则很好的解决了这个问题。方法重写又称为方法覆盖、方法复写。2.重写的特点子类和父类中方法相同,两个类之间的关系,函数的返回值类型、函数名、参数列表都一样子类要重写的方法,方法的...原创 2019-12-06 14:48:34 · 70 阅读 · 0 评论 -
什么是多态?为什么使用多态?什么时候使用多态?
在学习多态的过程中,发现书籍和网上大部分文章都是在讲多态的概念,但什么时候用呢,又为什么用呢,就不得而知了。我找了很多资料,结合自己的理解,特总结出这篇文章,和大家分享。1.什么是多态编程中多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的...原创 2019-12-06 11:11:56 · 5376 阅读 · 0 评论 -
java基础-多态
1. 什么是多态编程中多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改...原创 2019-12-06 11:06:11 · 86 阅读 · 0 评论 -
java基础-接口
1. 什么是接口接口表示的是功能的集合,接口中全是抽象方法,没有普通方法,是比抽象更抽象的“类”,接口只描述应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计,解决了继承带来的耦合性,是一种只包含了功能声明的特殊类。2. 接口的定义使用 interface 关键字定义接口定义格式:public interfac...原创 2019-12-05 16:30:00 · 104 阅读 · 1 评论 -
java -version显示版本和JAVA_HOME配置不一样
当你需要安装多个版本的jdk时,可能会遇到更改了JAVA_HOME后java -version不变的情况。一般情况下,将你的JAVA_HOME改为你要用的jdk的安装路径,然后你使用的就是这个版本的JDK。但是有时候你会发现更改了JAVA_HOME后java -version不变。可能原因: path的路径中,有的路径目录下也包含java.exe,然后该路径在%JAVA_HOME%\bin的前...原创 2019-12-05 11:12:41 · 647 阅读 · 0 评论 -
java基础-抽象
脑图附上:持续更新中一、概念1.什么是抽象当父类知道子类应该包含什么样的方法,但无法确定子类如何实现这些方法;在分析事物时,会发现事物的共性,将共性抽取出,实现的时候,就会有这样的情况:方法功能声明相同,但方法功能主体不同,这时,将方法声明抽取出,那么,此方法就是一个抽象方法。2.抽象定义格式抽象类: abstract class 类名{}抽象方法: public abstrac...原创 2019-12-04 16:16:57 · 66 阅读 · 0 评论 -
java基础-继承
脑图附上:脑图持续更新一、概述1.什么是继承面向对象编程中,继承是一个比较重要的概念,继承描述的是事物之间的所属关系,是从已有的类中构建出新的类,已有的类称为父类,新的类称为子类,子类具有父类的数据属性和方法,并能扩展新的属性和方法(不能继承私有)。2.使用方法使用 extends 关键字 ==> class 子类 extends 父类 ()3.特点只支持单继承,不支持多继...原创 2019-12-04 14:30:47 · 69 阅读 · 0 评论