![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 69
Atalanta1
这个作者很懒,什么都没留下…
展开
-
MyBatis框架概述
1.MyBatis框架:MyBatis解决的主要问题减轻使用JDBC的复杂性,不用编写重复的创建Connection,Statement;不用编写关闭资源代码。直接使用Java对象,表示结果数据。让开发者专注SQL的处理。其他分心的工作由MyBatis代劳。MyBatis可以完成:(1)注册数据库的驱动,例如Class.forName("com.mysql.jdbc.Driver")(2)创建JDBC中必须使用的Connection,Statement,ResultSet对象;(3)原创 2022-10-12 19:55:52 · 607 阅读 · 0 评论 -
内存溢出与内存泄漏
一.内存溢出和内存泄漏的区别1.内存溢出: 系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出2. 内存泄漏:强引用所指向的对象不会被回收,可能导致内存泄漏,虚拟机宁愿抛出OOM也不会去回收他指向的对象意思就是你用资源的时候为他开辟了一段空间,当你用完时忘记释放资源了,这时内存还被占用着,一次没关系,但是内存泄漏次数多了就会导致内存溢出例子:你想系统申请分配内存进行使用,可是使用完了以后却不归还,结果你申请到的那块内存你自己也不能再访问(也...原创 2021-02-05 18:41:13 · 236 阅读 · 1 评论 -
Java中类的加载机制
Java中类加载机制1.类的生命周期加载—>验证à准备à解析—>初始化à使用à卸载其中解析过程在某些情况下可以在初始化阶段之后再开始,这是为了支持Java的动态绑定。2.类初始化时机虚拟机规范中并没有强制约束何时进行加载,但是规范严格规定了有且只有下列五种情况必须对类进行初始化(加载、验证、准备都会随着发生):遇到new、getstatic、putstatic ...原创 2020-02-18 17:04:53 · 229 阅读 · 0 评论 -
Java中内存泄漏和内存溢出
内存泄漏:一个不再被程序使用的对象或变量还在内存中占有存储空间【一次内存泄漏似乎不会有大的影响,但内存泄漏堆积的后果就是内存溢出】内存溢出:指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。二者的关系:内存泄漏的堆积最终会导致内存溢出; 内存溢...原创 2020-02-18 16:59:31 · 258 阅读 · 0 评论 -
初识Spring
目录1.Spring的简介2.Spring框架的组成图3.模块详解3.1Web模块3.2数据处理模块(Data Access)3.3AOP模块3.4Aspects 模块3.5Instrumentation模块3.6Messaging模块3.7Core Container模块3.8Test模块4.Spring的优点5.Spring核心思想...原创 2020-01-18 21:51:02 · 440 阅读 · 0 评论 -
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符【Java实现】
题目描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符输入描述:“They are students”“aeiou”输出描述:Thy r stdnts程序代码:package com.yt.dayPractice;import java.util.ArrayList;import java.util.Scanner;public cla...原创 2019-05-25 20:32:46 · 6620 阅读 · 0 评论 -
Java 内存区域和内存溢出
Java内存区域和内存溢出逻辑图:原创 2019-05-22 16:06:34 · 157 阅读 · 0 评论 -
Synchronized的底层实现
1.关于monitorenter和monitorexit的作用: 我们可以抽象的理解为每个做对象拥有一个计数器和一个指向持有该锁的线程指针。 当执行monitorenter时,如果目标锁对象的计数器为0,那么说明它没有被其他线程所持有。在这个情况下,Java虚拟机会将该锁的持有线程设置为当前线程,并且将其计数器加1. 在目标锁对象计数器不为0的...原创 2019-08-13 23:20:55 · 142 阅读 · 0 评论 -
初识反射
目录1.认识反射机制:2.三种实例化对象3.反射与类操作:4.ClassLoader类加载器1.认识反射机制: 反射: 反射指的是对象的反向处理操作,所谓的额“反“指的是根据对象来取得对象的来源信息,而这个”反”的操作核心的处理就在于Object类的一个方法:取得Class对象: Public fianl native C...原创 2020-01-11 22:20:32 · 131 阅读 · 0 评论 -
Java中的Lock体系
Lock简介 锁是控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。在Lock接口出现之前,Java程序主要是靠synchronized关键字实现锁功能的,而JDK5之后,并发包中增加了lock接口,它提供了与synchronized一样的锁功能。虽然它失去了向synchronized关键字隐式加锁解锁的便捷性,但是却拥有了锁获取和释放的可操作性,可中...原创 2019-08-13 23:17:39 · 239 阅读 · 0 评论 -
Java内存模型以及垃圾回收算法
目录1.内存区域划分【物理】2.垃圾回收3.Java中volatile的作用1.内存区域划分【物理】线程私有区:1)程序计数器:可看作是当前线程所执行字节码的行号指示器2)虚拟机栈【-Xss:设置栈的深度】----虚拟机栈描述的是Java方法执行的内存模型,每个方法执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至...原创 2019-08-19 18:18:33 · 403 阅读 · 0 评论 -
Java中线程同步问题
1.同步的定义: 在引出线程同步问题之前首先要了解什么是同步? 所谓的同步指的是所有的线程对于同一个资源的访问上的时序性。2.Synchronized关键字 在java中使用synchronized关键字来实现线程同步的问题【即加锁操作】3.synchronized关键字实现线程同步问题的方式: (1)同步代码块: ...原创 2019-05-06 21:34:11 · 502 阅读 · 0 评论 -
Java中的异常机制
1.异常的定义: 异常(又称为例外)是程序中的一些错误,但并不是所有的错误都是异常,并且错误有的时候是可以避免的。比如说,在编写代码的时候少了一个分号,那么运行出来结果提示是:java.lang.Error;或者在程序里出现(10/0)这种运算,因为在做除法的时候分母为0,则会抛出java.lang.ArithmrticException的异常。2.异常的类型: (...原创 2019-04-29 17:11:57 · 280 阅读 · 0 评论 -
Java中创建多线程的三种方式 及其区别
1.什么是线程?区分进程与线程?(1)线程:一个程序同时执行多个任务。通常,每一个任务就称为一个线程,线程是OS任务执行的基本单位;(2)进程:操作系统中一个程序的执行周期称为一个进程,进程是资源分配的基本单位;(3)线程与进程的区别: a) 线程比进程更轻量级,本质区别在于,每个进程拥有自己的一整套变量,而线程则是共享数据; b)撤销一个线程比启动一个进...原创 2019-04-27 10:19:44 · 381 阅读 · 0 评论 -
java语言求数组最大值、最小值、总和,打印,翻转、截取等操作
//Java数组章节练习题public class ArrayUtils{ //1.计算数组中最大值 public static int arrayMaxElement(int[] data){ int max=data[0]; for(int i=0;i<data.length;i++){ if(max<data[i]){ ...原创 2018-11-14 10:12:34 · 529 阅读 · 0 评论 -
java语言简单实现网上购物
因为大多软件网上购物的流程都差不多,所以这里采用模板模式,将购物作为一个模板抽象类,而各款软件的购物方式作为其子类,继承父类,父类不希望子类修改它的购物流程所以用关键字final修饰abstract class TemplateShopping{ final void shoppingMethod(){ this.scanning();//浏览 this.choose();/...原创 2018-12-02 17:03:13 · 2959 阅读 · 0 评论 -
Java设计模式
此文全篇围绕“是什么”和“为什么”在列举设计模式之前,我们首先要明白两个问题:(1)什么是设计模式?(2)为什么要用设计模式?以下内容为详解?1.什么是设计模式?设计模式值软件开发人员在软件开发过程中面临的一般问题的解决方案,这些解决方案是众多软件开发人员经过相当长的的一端时间的实验和错误总结出来的。2.为什么要用设计模式?设计模式是一套被反复使用的、多数人知晓的、...原创 2020-01-11 22:24:13 · 181 阅读 · 0 评论 -
Java常用设计模式
此文全篇围绕“是什么”和“为什么”在列举设计模式之前,我们首先要明白两个问题:(1)什么是设计模式?(2)为什么要用设计模式?以下内容为详解?1.什么是设计模式?设计模式值软件开发人员在软件开发过程中面临的一般问题的解决方案,这些解决方案是众多软件开发人员经过相当长的的一端时间的实验和错误总结出来的。2.为什么要用设计模式?设计模式是一套被反复使用的、多数人知晓的、...原创 2019-03-26 14:30:33 · 258 阅读 · 0 评论 -
Java中抽象类与接口(结合例子)
最近回顾了一下有关抽象类与接口部分的知识,所以对这块儿的知识做了一下小小的总结,此文从两者的定义,使用原则和使用限制作以总结。1.抽象类的定义: 抽象类只是在普通类的基础上扩充了一些抽象方法而已,而抽象方法指的是只进行了声明,而没有实现的方法(即就是没有方法体)。抽象类和抽象方法使用关键字 abstract 来定义。举个栗子:abstract class A{ ...原创 2019-04-11 15:14:07 · 3280 阅读 · 1 评论 -
Java实现大整数排序
题目描述:对N个长度最长可达1000的数进行排序。输入描述:输入第一行为一个整数N,(1<=N<=100).接下来的N行每行有一个数,数的长度范围为1<=len<=1000.每个数都是一个正数,并且保证不包含前缀0.输出描述:可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。示例1:输入输出示例仅供调...原创 2019-04-08 13:48:45 · 1038 阅读 · 0 评论 -
Java实现判断一个序列是否为某二叉搜索树的后序遍历(加图解)
题目描述: 输入一个整数数组,判断该数组是不是某二叉树的后序遍历 的结果。如果是则输出“YES”,否则输出“NO”。假设输入的数组的任意两个数字都互不相同。在解决这个问题之前,首先要弄清楚两个问题: (1)简单了解什么是二叉搜索树? (2)后序遍历的方法1.二叉搜索树的定义:二叉搜索树又叫二叉排序树也叫二叉查找树(Binary Search Tree),二叉排序树...原创 2019-04-12 00:30:29 · 869 阅读 · 1 评论 -
Java中集合框架的总结
在学习这块知识的时候觉得内容很多,还有很多比较底层的东西需要理解,当时就觉得头都大了,这几天静下心来,翻了翻书,也查了一些资料,对这块的知识体系,也有了自己的一个框架,所以对此做以总结,此文主要从以下几个方面进行阐述:1.为什么要使用集合框架? 数组是Java提供的随机访问对象序列的最有效方法,访问元素较快,缺点就是数组的大小自创建之后就固定了,所以集合框架的出现就是为了解...原创 2019-04-13 12:27:00 · 199 阅读 · 0 评论 -
【牛客网】求超过数组长度一半的元素
题目简述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。设计思路:1.先判断数组,如果数组的长度小于1,直接返回。2.否则,就假设这个数存在, (1)就先将该数组排序,则最中间的数一定是出现次数超过数组...原创 2019-04-18 00:05:56 · 342 阅读 · 0 评论 -
青蛙跳台阶问题(正常跳与变态跳)
正常跳台阶:题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)解决思路:n=1时,则只有一种跳法(1)n=2时,跳法为(1),(2) 2种跳法,n=3时,跳法为(1,1,1),(1,2),(2,1) 3种跳法n=4时,跳法为(1,1,1,1),(2,2),(1,2,1),(1,1,2...原创 2019-04-26 22:15:39 · 753 阅读 · 0 评论 -
java中对内部类的小结
刚开始学java,学习内部类这块的时候,就感觉有点混乱,现在就内部类这块的知识整理了一下:1.内部类的定义: 内部类(Inner class)也称为嵌入类,它把一个类定义在一个类的类体中,即就是在类内部进行其他类结构的嵌套操作。 首先这是一个静态内类的例子:class Outer{ private string msg="hello world"; //...原创 2018-11-25 21:38:49 · 268 阅读 · 0 评论