JAVA学习笔记
花开烬处
这个作者很懒,什么都没留下…
展开
-
框架基础之SpringMVC
SpringMVC是基于MVC模式设计的一种请求响应式的轻量级框架。MVC模式:Model、View、Controller。Model是数据以及业务逻辑层,和数据库打交道。View是视图,和用户进行交互,简单来说就是jsp文件,显示在网页上的内容。Controller是控制层,用来调度数据、业务逻辑层和视图层。Controller仅起到调度作用,当用户操作视图层,传入某数据时,由View...原创 2019-11-09 21:10:39 · 186 阅读 · 0 评论 -
基础框架之Spring-AOP
AOP,Aspected Oriented Program,面向切面编程。AOP是不同于OOP的一种编程思想,算是对OOP编程思想的扩充。AOP为了实现什么?程序正常运行都有核心业务,最基本的核心业务就是增删改查,而在程序正常运行时,经常需要一些周边功能,比如性能统计、日志等,将这些周边功能和核心业务分离,就是AOP所需要做的事情。如何理解切面?其实这里的切面应该是和核心业务本身所在的面对应...原创 2019-11-09 13:26:39 · 165 阅读 · 0 评论 -
框架基础内容之Spring-代码
如何利用Spring框架获取对象流程呢?1.写Product类,Prodouct类是需要获得的对象的类,其中需要包含属性的getter、setter方法。package com.myTest.pojo//商品类public class Product(){private int id;private String name; public int getId(){ r...原创 2019-11-08 22:23:46 · 186 阅读 · 0 评论 -
框架基础内容-Spring之IOC、DI
IOC(Inverse of control)是Spring的基础。IOC,中文译为控制反转,通俗点说它的作用,就是改变了获取对象的方式。以前学java,想要获得一个类的对象,必须使用new关键字,调用类的构造方法,然后获得返回的对象。这样做的弊端其实很明显,第一,必须在指定包中存在已有类的已有构造器,否则编译不通过。这一点之前学习反射时有学到过,反射机制可以解决这个弊端。第二,如若需要...原创 2019-11-08 21:39:23 · 108 阅读 · 0 评论 -
前端之CSS
CSS(CasCading Style Sheets),翻译为层叠样式表,它的主要功能是将内容和表现分离。在之前学习html时,如果需要对某一部分内容加上特定的样式,比如下:<font color="red">红色</font>显示结果:红色需要在内容外加上标签用以修饰其表现。而如果内容较多或者较为复杂,再逐一修饰会导致可读性变差,且工作繁杂。因此,有必要引入CS...原创 2019-11-06 19:02:53 · 99 阅读 · 0 评论 -
前端之HTML
html(HyperText Markup Language),翻译为超文本标记语言。html也是一种语言,它是用来标记网页信息如何显示的语言,它是web编程的基础。简单来说,它就是网页所用和所能识别的语言。html语言的语法非常简单,它的基本组成结构是元素。如下,就是一个元素:<html> <body> <p>Hello World!<...原创 2019-11-06 12:28:03 · 83 阅读 · 0 评论 -
JAVA进阶之注解
注解为实际开发提供了很多便利,简单来说,注解可以代替繁杂的XML文件,只需要一个标签,就可以完成原本要在配置文件中的一大段标签的功能。以JDBC常用的工具类DBUtil为例看一下如何自定义注解:DBUtil工具类源码:package util; import java.sql.Connection;import java.sql.DriverManager;import java...原创 2019-11-06 11:01:07 · 162 阅读 · 0 评论 -
JAVA进阶之反射
反射使得JAVA具有一定的动态性。反射是一种在运行过程中动态获取信息,构造对象以及调用方法的机制。反射通过获取类对象来实现。所有的JAVA类都具有其类对象,是在类加载时生成的。类对象包含类的信息、构造方法和普通方法。可以通过三种方式获取类对象,分别是://Classname代表需要获取类对象的类名Class c1 = Class.forName("Classname");Class ...原创 2019-11-06 01:42:36 · 165 阅读 · 0 评论 -
JAVA进阶之JDBC
JDBC–JAVA DataBase Connection通过JAVA访问数据库,一般需要经过如下流程:1.首先需要导入对应数据库的jar包,然后初始化驱动:Class.forName("com.mysql.jdbc.Driver");2.建立与数据库的连接//其中root是账户名,pwd是密码Connection c = DriverManager.getConnection("j...原创 2019-11-05 18:58:40 · 315 阅读 · 0 评论 -
JAVA基础之多线程--交互
不同的线程可能会处理同一个数据或者对象,此时会发生交互。发生交互时,可能希望在某些情况让某些线程暂停释放锁,而在另外一些情况唤醒暂停的线程。wait()方法可以让当前线程暂停并且释放锁,直到接到唤醒通知。notify()方法可以唤醒一个在当前对象上等待的线程。notifyAll()方法可以唤醒所有在当前对象上等待的线程。需要注意的是,wait()、notify()方法都是Object的方...原创 2019-11-05 18:37:45 · 148 阅读 · 0 评论 -
JAVA基础之多线程--死锁
死锁发生的条件非常简单,假如某部分同步块代码中还存在一个同步块,即需要分别获得两个对象锁才可以执行完该部分代码块,而另一部分同步代码块也需要分别获得两个对象锁才可以执行完该部分代码块,则在获取锁时有可能会产生各拿一个却不释放,导致对方都拿不到第二个锁的情况,该种情况称为死锁。死锁的解决思路也很简单,只要规定同步代码块必须按照同一个顺序去拿锁,即可解决死锁的发生,因为线程1拿到了锁1,此时线程2已...原创 2019-11-05 18:22:42 · 102 阅读 · 0 评论 -
JAVA基础之多线程--同步
先用一个简单的例子描述一下多线程可能带来的问题。假设有一个银行账户,里面有10000块钱,小张和他妻子都知道密码,某一次小张和他妻子同时操作该账户,小张准备存1000块钱,而他妻子准备取1000块钱。假设小张手速快了那么一点点,先进入银行账户,开始存钱,但是还没有结算完的时候,他妻子进入银行账户,开始取钱,代码如下://初始金额为10000money = 10000//小张准备开始的操作...原创 2019-11-05 18:16:14 · 141 阅读 · 0 评论 -
JAVA基础之多线程--方法
线程共有四种创建方式:1.继承Thread类2.实现Runnable接口3.实现Callable接口4.匿名类常用线程方法如下:1.sleep(int time):当前线程休息,但不会释放锁,会抛出InterruptedException异常2.join():加入到主线程,只有调用此方法的线程执行完毕,主线程才会接着往下运行3.setPriority(Thread.MAX_PRIO...原创 2019-11-05 11:39:18 · 115 阅读 · 0 评论 -
JAVA基础之多线程--概念
学线程之前先要知道什么是“程序”、“进程”、“线程”。“程序”指的是一个可执行文件,当我们双击该文件时,程序的内容即加载到内存中,产生该“程序”的“进程”。“进程”是执行中的程序,我们可以同时开启多个进程,每个进程占用特定的内存空间,每个进程由3部分组成:cpu、data、code。“线程”可以被称为轻量级进程,一个进程可以包含多个线程,这些线程之间共享进程的某些资源。具有如下特点:一个...原创 2019-11-05 11:29:08 · 106 阅读 · 0 评论 -
JAVA基础之容器--Collections工具类
Collections是容器的工具类,就像Arrays是数组的工具类一样。Collections工具类提供了以下方法:1.reverse():反转2.shuffle():混淆3.sort():排序4.swap():交换5.rotate():滚动6.synchronizedList():线程安全化...原创 2019-11-05 10:57:27 · 151 阅读 · 0 评论 -
JAVA基础之容器--Map
Map的特点是存放一对"key"-“value”(键值对)。我们可以通过"key"对象来查找对应的值,因此自然地,为了保证查找结果的唯一性,"key"对象是不可重复的。Map接口的实现类有HashMap、HashTable、TreeMap、Properties等。HashMap是Map最常用的实现类。HashMap底层是一个“位桶数组”,即数组+单向链表的形式,或者说单向链表构成的数组。...原创 2019-11-05 10:48:43 · 213 阅读 · 0 评论 -
JAVA基础之容器--Set
Set接口继承自Collection接口,没有新增方法。Set接口的特点是内部的元素无序且不可重复。Set接口的实现类有HashSet、TreeSet等。HashSet的底层是用HashMap实现的。向HashSet中存储对象时,实际上是将对象作为key存储到HshMap中,value是名为PRESENT的Object对象。Map中的key是不可重复的,所以HashSet中的值是不可重复...原创 2019-11-05 10:02:36 · 133 阅读 · 0 评论 -
JAVA基础之容器--List
数组具有很高的查询效率,但是数组不可以扩容,长度在创建的时候已经确定,过大则会浪费容量,过小会造成数组越界。因此必须引入容器。容器有两种常用接口,Collection和Map。其中Collection接口有两种子接口,分别是List和Set。List接口的特点是有序,可以重复。Set接口的特点是无序且不可重复。List接口包含三个实现类,分别是ArrayList、LinkedList和V...原创 2019-11-04 21:53:58 · 124 阅读 · 0 评论 -
JAVA基础之抽象类和接口
JAVA中允许抽象方法的存在,抽象方法,指的是只有方法类型以及形参声明,没有方法体的方法,有抽象方法的类必须被声明为抽象类或者接口,否则无法通过编译。抽象类或者接口不能实例化,只能被继承。它们的子类如果不声明为抽象类,则必须重写所有的抽象方法。抽象类不可以被实例化,其中可以包含也可以不包含抽象方法。接口不可以被实例化,其中只能有抽象方法。接口中必须全部为抽象方法,且抽象方法的声明默认为publ...原创 2019-11-04 21:21:09 · 242 阅读 · 0 评论 -
JAVA基础之单例模式
单例模式指的是一个类,在JVM中只能有一个对象存在,一般用于一个类只能有一个对象的场景,可以通过用以下方法实现:public class Roshan{ private Roshan(){} private static Roshan roshan = new Roshan(); public static Roshan getRoshan(){...原创 2019-11-04 20:59:52 · 131 阅读 · 0 评论 -
JAVA基础之继承与构造器
继承就是子类可以通过继承获得父类非私有的属性和方法。换句话说,继承使得子类具有以及可以访问父类所有非私有的特征。JAVA只支持单继承,也就是子类不可以继承自两个父类。继承是面向对象的基石,继承的关系表示为“is-a”,在JAVA中用extends关键字表示继承。一般来说,父类更为抽象,子类更为具体。继承使得代码的复用性高。但是继承会提高代码之间的耦合性,耦合性越高,代码联系越紧密,在后期...原创 2019-11-04 20:54:41 · 439 阅读 · 0 评论 -
JAVA基础之数组
JAVA中可以创建各种各样的数组,创建方式如下:int[] a = new int[3];int[] b = new int[]{1,2,3,4,5};int[] c = {1,2,3,4,5};需要注意的是,给数组赋值和给变量赋值在底层实现是不同的。给数组赋值实际上是在内存中创建一块连续的区域,并给其中 每一个元素赋值,最后将数组的引用指向该区域,实际上是引用而不是赋值。...原创 2019-11-04 11:52:59 · 105 阅读 · 0 评论 -
JAVA基础之控制语句
最常用的控制语句可以概括为条件判断以及循环语句判断;条件判断:if语句:if(boolean){...}else{...},或if(boolean){...}else if(boolean){...}...else{...}switch语句:switch(byte,short,int,char,String,enum){ case 1:...;break; case 2:...原创 2019-11-04 11:25:27 · 386 阅读 · 1 评论 -
JAVA基础之操作符
操作符也是构成java语句的一部分,比较常用的操作符有1.关系操作符:>、<、==、>=、<=、!=;2.逻辑运算符:&、&&、|、||、!、^3.位操作符,简单了解右移>>,相当于除2及左移<<,相当于乘2;位运算效率高于乘法运算符4.算数操作符,即+、-、*、/、以及%5.赋值操作符,即=、+=、-=等6.三...原创 2019-11-04 11:09:16 · 93 阅读 · 0 评论 -
JAVA基础之变量
变量是所有计算机语言中最为基础的部分,所有的程序都是由变量和控制语句构成的,变量就是程序这栋楼的砖头,控制语句则是程序的水泥钢筋。JAVA有8中基本类型,其中有四种整型,两种浮点型,一种字符型和一种布尔型。整型变量字节长度从小到大分别为byte(8位),short(16位),int(32位)和long(64位),分别有其自己表示的范围。字符型变量为char,长度为16位。浮点型变量为两种,...原创 2019-11-04 11:00:30 · 361 阅读 · 0 评论 -
JAVA基础之面向对象思维
要学习JAVA,首先得明白什么是面向对象设计。面向对象和面向过程是程序的两种设计思路,它们之间的区别主要是审视程序的视角不同。面向过程强调的是过程,过程是需求的一部分,如何通过程序实现某一功能,完成需求的某一过程,即为面向过程,面向过程的设计方法也被称为结构化设计方法。也就是说,面向过程的设计方法是将问题拆分成一个个步骤,我们对其逐一实现,即为面向过程。在处理单向的、流程化的、模块化的任务时,我...原创 2019-11-04 10:30:00 · 130 阅读 · 0 评论 -
一个程序员的从零开始成长史--写在前面
本人从临近硕士研究生毕业之际,下决心自学JAVA至今,已有一段时间;期间也算是熟悉了JAVA基础知识,了解数据库常用命令,了解前端相关代码,掌握SSM框架基础的原理、知识与应用。学习过程中做的许多笔记,都是在学习过程中使用word文档书写,而后保存在本地,方便时时查阅。近来决定还是将其上传到博客上以进行记录、保存。...原创 2019-11-04 09:57:09 · 217 阅读 · 0 评论