![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Coder Mark
这个作者很懒,什么都没留下…
展开
-
【备战秋招】Java虚拟机
Java 虚拟机运行时数据区垃圾收集Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS收集器G1收集器内存分配与回收策略类加载机制**加载(Loading)****验证(Verification)****准备(Preparation)****解析(Resolution**)**初始化(Initialization**)类加载器双亲委派模型运行时数据区程序计数器 线程私有,唯一不存在OOM区域记录正在执行的虚原创 2020-08-11 21:30:18 · 407 阅读 · 1 评论 -
【备战秋招】多线程
多线程线程与进程线程创建继承Thread类实现Runnable接口实现Callable接口常用API线程与进程一个进程可以包含一个或多个线程,但至少会有一个线程。操作系统调度的最小任务单位其实不是进程,而是线程。创建进程比创建线程开销大,尤其是在Windows系统上进程间通信比线程间通信要慢,因为线程间通信就是读写同一个变量,速度很快。多进程稳定性比多线程高,因为在多进程的情况下,一个进程崩溃不会影响其他进程,而在多线程的情况下,任何一个线程崩溃会直接导致整个进程崩溃。一个Java程序实原创 2020-07-22 11:51:34 · 128 阅读 · 0 评论 -
GOF23种设计模式-工厂模式
工厂模式简单工厂模式工厂方法模式抽象工厂模式分析: 修改代码可以接受,但是如果我们在其它的地方也有创建Pizza的代码,就意味着,也需要修改,而创建Pizza的代码,往往有多处。思路: 把创建Pizza对象封装到一个类中,这样我们有新的Pizza种类时,只需要修改该类就可,其它有创建到Pizza对象的代码就不需要修改了.-> 简单工厂模式简单工厂模式简单工厂类public class SimpleFactory { //简单工厂模式 也叫 静态工厂模式 public st原创 2020-07-12 18:15:35 · 233 阅读 · 0 评论 -
GOF23种设计模式-代理模式
代理模式代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。静态代理代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法定义接口//接口public interf原创 2020-07-12 16:16:23 · 205 阅读 · 0 评论 -
GOF23种设计模式-单例模式
单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Mybatis的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这是就会使用到单例模式。单例模式有八种方式:饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方原创 2020-07-11 20:31:14 · 136 阅读 · 0 评论 -
Mysql进阶
MysqlMysql体系结构Innodb执行流程索引的作用以及优劣势索引的数据结构区分聚集索引,非聚集索引SQL优化案例Mysql体系结构connectors 用来支持各种语言和SQL的交互Management Serveices&Utilities 系统管理和控制工具,包括备份恢复,Mysql复制,集群等.Connection Pool 连接池,管理需要缓冲的资源,包括用户密码,权限等.SQL Interdace 用来接收用户的SQL命令,返回用户需要的查询结果Parser 用来解原创 2020-06-29 18:43:44 · 228 阅读 · 0 评论 -
JVM快速入门
JVM概念JVM内存区域垃圾回收算法引用类型概念基本概念JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互运行过程我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。① Java 源文件—->编译器—->字节码文件② 字节码文件—-&g原创 2020-06-25 15:05:41 · 200 阅读 · 0 评论 -
1小时掌握git
Git版本控制环境配置Git基本理论Git项目搭建创建工作目录和常用指令Git文件操作使IDEA集成GitGit分支版本控制在工作中同一个项目会有不同版本,那么如何进行版本控制?版本控制是一种在开发的过程中用于管理我们对文件,目录,或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术.常见版本控制工具GitSVNCVSVSSTFSVisual Studio Online版本控制分类本地版本控制记录文件每次更新,可以对每个版本做一个快照,或记录原创 2020-06-20 02:40:00 · 165 阅读 · 0 评论 -
【Mark学Java】Java内部类
内部类为什么使用内部类?内部类分类:成员内部类静态内部类方法内部类匿名内部类:为什么使用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,使用内部类还能够为我们带来如下特性:内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独。在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。创建内原创 2020-05-14 13:57:58 · 194 阅读 · 0 评论 -
【Mark学Java】线程间协作:wait、notify、notifyAll
线程间协作:wait、notify、notifyAllwait()notify()notifyAll()深入理解在 Java 中,可以通过配合调用 Object 对象的 wait() 方法和 notify()方法或 notifyAll() 方法来实现线程间通信。在线程中调用 wait() 方法,将阻塞等待其他线程的通知(其他线程调用 notify() 方法或 notifyAll() 方法),在线...原创 2020-05-01 14:24:49 · 193 阅读 · 0 评论 -
【Mark学Java】JavaScript(二)
JavaScriptBOMDOM事件BOMDOM功能:控制html文档的内容代码:获取页面标签(元素)对象 Elementdocument.getElementById("id值"):通过元素的id获取元素对象<!--通过元素的id获取元素对象--><body> <img id="light" src="img/off.gif"> ...原创 2020-04-28 01:51:40 · 177 阅读 · 0 评论 -
【Mark学Java】内部类
内部类成员内部类局部内部类匿名内部类成员内部类格式:修饰符 class 外部类名称{ 修饰符 class 内部类名称{ }}内部类可以随意访问外部类元素,外部类需要借助内部类对象访问其元素.如何使用成员内部类?间接方式:在外部类的方法当中,使用内部类,然后main只是调用外部类的方法//内部类public class Outter{ public cla...原创 2020-04-27 20:46:22 · 126 阅读 · 0 评论 -
【Mark学Java】反射
反射通过集成开发环境(IDE)创建程序时,可以通过.检查可用的方法,并返回方法名;通过远程方法调用(RMI)允许将一个Java程序对象分布到多台机器上.反射机制为上述功能实现保证.来看看什么是反射机制.Java代码在计算机中经历三个阶段:Source源代码阶段,Class类对象阶段,Runtime运行时阶段Person类的Java源程序Person.java首先通过javac编译与平台无...原创 2020-04-27 16:55:01 · 161 阅读 · 0 评论 -
【Mark学Java】权限修饰符
权限修饰符别名机制Java中有四种权限修饰符:public接口访问修饰符,protected继承访问权限,默认包,private无法访问访问权限大小:private<default(默认)<protected<publicprivate除了包含该成员的类外,其他任何类都无法访问这个成员如果不希望任何人对该类拥有访问权限,可以把构造器都指定为private,从而阻止任何...原创 2020-04-27 02:56:30 · 181 阅读 · 0 评论 -
【Mark学Java】static final this super关键字
static final this super关键字staticthissuperfinalstatic创建类时,就是在描述类的外观和行为,除非用new创建那个类的对象,否则实际上未获得任何对象.执行new创建对象时,数据存储空间才被分配,其方法才供外界调用.以下情形无法通过上述方法解决只为某特定域分配单一存储空间,而不去考虑究竟创造多少对象,甚至根本不创建任何对象希望某个方法不与包含...原创 2020-04-27 01:25:59 · 123 阅读 · 0 评论 -
【Mark学Java】Java中的堆 栈 方法区
Java中的堆 栈 方法区Stack(栈)Heap(堆)方法区JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)首先要明确堆是堆(heap),栈是栈(stack),堆栈是栈。那么什么是 堆 栈,看看Oracle官方解释Stack(栈)原文Each Java Virtual Machine thread has a private Jav...原创 2020-04-26 22:46:03 · 273 阅读 · 0 评论 -
【转载】Java堆栈
转自:http://www.iteye.com/topic/6345301.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存...转载 2020-04-26 21:07:16 · 103 阅读 · 0 评论 -
【Mark学Java】Scanner
ScannerScannernext()nextLine()next()与nextLine()区别nextInt()Scanner读取文件OJ输入基本格式输入为一个字符串输入为多个数字输入中有一个数组,且有数组的长度输入不定组数数据练习ScannerScanner类,可以实现键盘输入数据,到程序中.java.util.Scanner是Java5 的新特征,我们可以通过 Scanner 类来获...原创 2020-04-26 14:59:55 · 254 阅读 · 0 评论 -
【Mark 面经】牛客笔试题整理(持续更新)
牛客笔试题数据结构算法(1)Linux基础(2)数据类型(3)面向对象集合异常IO线程JDBCJava Web(1)前端框架(1)SpringSpringMVCMybatisStrutsHibernateJVM(5)其他(2)持续更新中(2020-4-25)数据结构算法(1)1说明排序算法时间复杂度Linux1命令javac-d参数的用途是?(指定编译后类层次的根目录)javac ...原创 2020-04-26 02:45:17 · 1152 阅读 · 0 评论 -
【Mark学 Java】字符串
字符串常用方法练习StringBuilder类StringBuffer区别String类代表字符串,Java程序中所有字符串字面值(“abc”)都作为此类的实例实现.字符串特点字符串的内容永不可变因为字符串不可改变,所以字符串可以共享使用字符串效果上相当于char[ ]字符数组,底层是bytes[ ]字节数组.创建字符串的方式public String()创建一个空白字符串"",...原创 2020-04-25 19:20:05 · 161 阅读 · 0 评论 -
【Mark学Java】网络编程
网络编程IP地址TCPUDPURL计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外设设备,通过通信线路连接起来,在网络操作系统,网络管理软件,网络通信协议的管理,协调下,实现资源共享和信息传递的计算机系统.java web-网页编程B/S 网络编程-TCP/IP C/S java.net.InetAddress 此类表示Internet(IP)地址IP地址...原创 2020-04-25 02:47:13 · 219 阅读 · 0 评论 -
【Mark学Java】I/O流
I/O流字节流字符流缓冲流效率测试转换流序列化\反序列化打印流I-input O-output stream-字符,字节; 1个字符=2个字节 1个字节=8个二进制位输入:把硬盘中的数据,读取到内存中使用;字节输入流, InputStream字符输入流Reader输出:把内存中的数据,写入到硬盘中保存;字节输出流OutputStream,字符输出流Writer字节流一切文件都是以字节...原创 2020-04-25 02:39:46 · 219 阅读 · 0 评论 -
【Mark学Java】Collection(三)
CollectionCollectionList集合ArrayListLinkedListVectorSet集合HashSet哈希值哈希表LinkedHashSetMapHashMapLinkedHashMap今天将进行Collection最后部分,之前内容参见Collection(一)Collection(二)Collectionjava.utils.Collections是集合工具...原创 2020-04-25 02:24:52 · 229 阅读 · 0 评论 -
【Mark学Java】 JDBC连接池
JDBC连接池概念实现C3P0概念本质是一个容器(集合),存放着数据库连接的容器。当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。可以节约资源,使用户高效访问。标准接口:DataSource(javax.sql包下)这里是引用方法:获取连接 getConnection() 归还连接Connection...原创 2020-04-16 13:44:34 · 147 阅读 · 0 评论 -
【Mark学Java】 Spring-JDBC
Spring-JDBC概念快速入门概念Spring框架提供的JDBC简单封装.提供JDBCTemplate对象快速入门1.导入jar包2.创建JDBC对象,依赖于数据源JDBCTemplate() public static void main(String[] args) { //1.导入jar包 //2.创建JDBCTemplate对象 ...原创 2020-04-16 23:01:26 · 130 阅读 · 0 评论 -
【Mark学Java】 HTML
HTML资源分类概念快速入门资源分类1.静态资源:使用静态网页开发技术发布的资源.所有用户访问得到的结果一样HTML,CSS,JavaScriptHTML:用于搭建基础网页,展示页面内容CSS:用于美化页面,布局页面JavaScript:控制页面的元素,让页面有一些动态的效果2.动态资源:使用动态网页及时发布的资源.所有用户访问得到的结果可能不一样.jsp/servlet,php,...原创 2020-04-18 01:07:13 · 239 阅读 · 0 评论 -
【Mark学Java】 Collection(二)
Collection原创 2020-04-24 14:00:55 · 160 阅读 · 0 评论 -
【Mark学Java】 泛型
泛型概念概念泛型,用来灵活地将数据类型应用到不同的类,方法,接口中.把数据类型作为参数传递.含有泛型的类class ArrayList<E>{ public boolean add(E e){ } public E get(int index){ }}在创建对象时确定泛型.含有泛型的方法public class GenericMethod{ ...原创 2020-04-22 01:49:37 · 111 阅读 · 0 评论 -
【Mark学Java】 Collection(一)
Collection概念集合框架CollectionIterator概念集合:集合是java中提供的一种容器,可以用来存储多个数据.集合和数组区别在于:数组的长度时固定的,集合的长度时可变的.数组中存储的是同一类型的元素,可以存储基本数据类型值和对象.集合存储的都是对象(对象类型可以不一致).在开发中一般当对象多时,使用集合进行存储.int[] arr=new int[10];Stu...原创 2020-04-21 02:20:18 · 178 阅读 · 0 评论 -
【Mark学Java】JavaScript(一)
JavaScript概念基本语法基本对象练习:九九乘法表概念JavaScript是一门客户端脚本语言运行在客户端游览器中,每个浏览器中都有JavaScript的解析引擎.脚本语言:不需要编译,直接就可以被浏览器解析可以用来增强用户与html页面的交互过程,可以控制html元素,让页面有一些动态的效果,增强用户的体验.JavaScript=ECMAScript(客户端脚本语言标准)+...原创 2020-04-19 02:06:53 · 260 阅读 · 0 评论