- 博客(47)
- 收藏
- 关注
原创 并发编程初解
java是最先支持多线程开发的语言之一,多线程技术使得程序的响应更快,可以再进行其他工作的同时一直处于活动状态。性能提升的本质就是榨取硬件的剩余价值即就是提高硬件的利用率。并发编程所带来的问题:安全性问题(访问共享变量)性能问题(线程切换所导致的CPU开销)
2023-07-16 16:18:04
294
原创 mysql进阶
Indodb引擎的索引结构由B+树实现,为什么不是二叉树以及平衡二叉树呢,因为两者存储索引后,高度过大,查询数据的效果并不明显,而B+树可以通过一个结点存储多个数据降低了高度,并且非叶子结点不存储数据可以存放更多的索引,将数据都记录在叶子结点上,并且所有叶子都通过一个链表连接。B树每一个结点都存储有索引和数据,这样就导致一个结点可以存放的索引不会太多,而B+树的只有叶子结点存储数据,其它结点可以存放更多的索引,且B+树的维护了一条链表连接叶子结点,可以更好的支持全表扫描。
2023-02-28 20:12:29
341
1
原创 JVM运行时数据区及垃圾回收
JVM对java栈的操作只有入栈和出栈,遵循先进后出,后进先出的原则,在一条活动的线程中,只有当前在执行方法的栈帧时有效的,此栈帧被称为当前栈,执行引擎运行的所有字节码指令只对当前栈帧进行操作;局部变量表:是一组变量值存储空间,用于存放方法参数以及方法内部定义的局部变量,如果是基本数据类型的变量,存储的是它的值,如果是引用类型的变量,则存的是指向对象的引用。2当伊甸园区的空间填满,程序需要创建新的对象时,JVM的垃圾回收将会清除伊甸园区的垃圾对象,再将新创建的对象放在伊甸园区。
2023-02-07 13:55:42
417
原创 JVM概述及类加载
JVM全称为 java vartual machine,中文名称为java虚拟机是java程序运行的底层平台简单来说就是能够执行标准java字节码的虚拟计算机分为系统虚拟机(VMvare)和程序虚拟机(java虚拟机)负责将标准的字节码文件加载到运行时数据区负责存储数据负责将字节码文件翻译为机器码文件,执行垃圾回收类加载器(引导类加载器,扩展类加载器,应用程序类加载器)运行时数据区(包括堆,java虚拟栈,方法区,程序计数器,运行时本地方法栈)执行引擎(将字节码文件翻译为机器码并执行)本地方法接口(调用本地
2023-02-02 16:05:16
404
原创 队列与栈的相互实现
在获取栈顶元素和出队时,如果出队的栈为空,则将存储入队元素的栈全部弹出,并入栈第二 个栈(注意必须一次性将存储的元素全部弹出,并入栈;每次入栈时,先将元素入队到第一个队列,然后将第二个队列中的所有元素依次出队,再入第一个队列;请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(之后交换两个队列(使用一个中间队列进行交换),保证存储元素的队列每一次都为空。定义第一个队列暂时存储入栈的元素,用第二个队列实现栈的操作;定义两个栈,一个用作存储入队元素,另一个用作出队。
2022-10-31 18:19:14
165
原创 盛水最多的容器
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。如果移动右边,Math.min(height[i],height[j])可能不变可能变小,j-i一定变小,因此s一定变小;如果移动左边,Math.min(height[i],height[j])可能增大可能不变,因此s可能增大;可得:s=(j-i)*(Math.min(height[i],height[j]))轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。
2022-10-29 15:21:23
71
原创 JavaScript基础语法(2)
事件属于html标签中的内容,例如点击按钮,触发的事情不同的事件触发方式不同:例如单击,双击;触发方式分为:鼠标触发与键盘触发单击:onclick 鼠标左键单击双击:ondblclick 鼠标右键点击移入:onmouseover 移入标签上移出:onmouseout 移出标签上聚焦:onfocus 输入框获得鼠标焦点触发失焦:onblus 输入框失去鼠标焦点触发内容改变:onchange 失去焦点且内容改变键盘抬起:onkeyup 按键按下时触发页面加载: onload 网页加载时触发
2022-06-14 18:32:32
74
原创 JavaScript基础语法
1.概述JavaScript是一种弱类型的面向对象的解释型脚本语言脚本语言:不需要编译,运行过程中由JS解释器(js引擎)逐行来进行解释并执行浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎(解释器)来执行JS代码,JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行2.数据类型 //数值型:Number 包括整数和小数 var a=10; va...
2022-05-29 19:00:29
67
原创 css基础(3)——盒子模型,标签分类
1.盒子模型css处理网页时,会认为每个标签都包含在一个不可见的盒子中 把每个标签看做一个盒子,那么定义布局实质上就是将每个盒子摆放到网页中相应的位置种,即可完成布局 一个盒子分为四部分,假如将一个教室看做一个盒子 ——内容区:存放标签中的内容与标签,width与height的实际设置的区域(就相当于教室中桌椅的位置) ——内边距:内容区与边框之间的距离(可看做教室过道) ——边框:内边距与外边距之间的距...
2022-05-16 21:04:27
670
原创 css基础(2)——伪类,浮动,定位
1.伪类css伪类表示标签的一种特殊状态,为特殊状态设置属性格式为 选择器:伪类名主要分为三类: :hover 鼠标移入状态 :active 点击,激活 :focus 聚焦,对于可输入内容的组件<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style ...
2022-05-16 20:44:39
745
原创 css基础(1)——样式表,选择器,文本修饰
1.css概述html中主要讲标签,标签是构成网页的主要内容;而css用来修饰网页的外观,定义布局。级联:即就是关联的意思,将页面内容与样式表相关联样式表:用来修饰网页的语法集。2.样式表的分类行内样式表:将样式表写入标签内容中;使用较少<a href="" style="color: red;font-size:30px;">百度</a>内嵌样式表:将样式表与内容分离,通过选择器将内容与样式表关联起来,练习使用较多/* 一个{} 表示一个样式表*
2022-05-16 20:23:22
283
原创 HTML入门
1.html概述html是一种超文本标记语言。超文本:网页中显示的超链接,图片,视频等标记:标签,记号,用来描述网页的主要内容,浏览器会根据标签内容进行解释执行学习html的本质就是学习各种各样的标签,然后浏览器解析执行,实质上就是制作网页一个基本的html代码:<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <!-- 设置网页信息,编码设置 -->
2022-04-17 13:50:46
295
原创 JDBC——JAVA连接数据库
一、JDBC概述1.什么是JDBC?JDBC是java连接数据库的一种规范,java开发者制定了一套标准,具体的实现由不同的数据库开发商实现。作用:用java处理数据,连接数据库,将数据发送到数据库并对数据进行增删改查等操作mysql-connector-java-8.0.16jar——mysql提供的java连接数据库的规范2.JDBC API供程序员使用的接口和类,集中在java.sql包中DriverManager类的作用:管理各种不同的JDBC驱动connection
2022-04-10 16:06:29
1509
原创 SQL语言——DML与DQL
一、DML——数据操作语言DML主要用于对数据库表中数据进行增删改等操作1.增加(插入)共三种方式1.1语法格式:insert into 表名 (列名) value (对应的数据)1.2语法格式:insert into 表名 set 列名=“对应的数据”1.3(批量插入数据)语法格式:insert into 表名 (列名) value (对应的数据)value (对应的数据)代码:INSERT INTO stu(NAME,gender,birthday,height,pho
2022-04-10 10:12:10
2296
1
原创 SQL语言——DDL
1.SQL概述SQL:结构化查询语言,是一种数据库查询和程序设计语言,用于存取和操作数据优点:几乎所有关系型数据库都支持SQL,较为通用灵活使用可以进行非常高级和复杂的数据库操作分类:DDL(数据定义语言) DML (数据操作语言)DQL (数据查询语言)数据类型:字符型:char类型 varchar类型 (字符型需给定长度)char与varchar的区别是char存储定长数据,即使存储一个字符,字符长度依旧是给定长度varchar给定的长度是指最大...
2022-03-28 20:54:47
1342
原创 MySQL概述_安装MySQL
1.为什么使用数据库?数据库-->全称为数据库管理系统,主要有两大功能:存储数据:有自己特定的规则存储数据;管理数据:使用SQL语言对数据进行管理;早期使用数组,对象,集合存储数据,将数据存储在内存中,后来使用IO(字符流)将数据写入文件中,做到了持久保存,但是以字符串的形式存储数据,操作起来不方便,查询较为困难,于是就有了数据库的出现;数据库的出现不仅实现了数据的持久化;而且使用完整的管理系统统一管理,实现了结构化查询,且方便管理2.相关概念DB:数据库:存储数据的容器,
2022-03-11 15:07:45
487
原创 线程安全与线程状态
1.线程状态线程共有有五种状态:新建;就绪;阻塞;运行;死亡新建状态:通过new Thread()方法创建的新线程状态就绪状态:通过start()方法启动之后进入就绪状态,并不立即执行,等待CPU调度阻塞状态:通过sleep()方法或者同步锁使线程自运行状态转换为阻塞状态运行状态:线程获得CPU调度开始执行死亡状态:线程执行完毕进入死亡状态状态转换图为:join()方法同样可以使线程从运行进入阻塞状态public class Text { public s.
2022-01-01 18:56:17
1668
原创 Java线程详解
1.概述在学习线程之前,我们先来了解一下三个概念:程序,进程,线程程序:为完成某种特定任务,用编程语言所编写的一段静态代码进程:正在运行中的程序,是操作系统中进行资源分配的最小单位线程:进程内部的最小执行单元,是操作系统进行任务调度的最小单元三者的关系为:进程里属于程序,线程隶属于进程;且操作系统在一个时间点只能执行一个任务,特点为快,切换执行多个任务2.线程与进程之间的关系首先先了解一下主线程,主线程负责而启动程序,例如java中的main方法就是启动Java主线程,对于线程而
2021-12-27 23:13:01
252
原创 网络编程——TCP编程及UDP编程
1.概述java是一种位于Internet上的语言,从语言级上提供了对网络应用程序的支持。且java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境1.1计算机网络学习网络编程,首先要了解计算及网络的意义,计算机网络指的是将位于不同地域具有独立功能的算机,通过通信方式及线程连接起来,由功能完善的的软件来实现资源共享以及信息连接的一种系统。1.2网络编程的目的通过网络协议(TCP及UDP)实现资源共享及信息连接2.核心要素两个端口:服务器端(ServerSocker)
2021-12-22 21:29:17
739
1
原创 JavaIO流
一.File类1.概述File即就是文件和目录路径的抽象表示,一个File对象即表示一个计算机文件或目录2.构造方法2.1通过参数为指定的文件路径字符串形式创建File对象File file=new File("E:/dome.txt");2.2通过参数为指定文件路径的父类File型对象和指定的文件路径字符串形式为参数创建File对象 File file1=new File(file,"E:dome.txt");2.3通过参数为指定文件路径的父类字符串形式和指定的文..
2021-12-18 23:46:48
268
2
原创 java——GUI
1.概述GUI(Griphycal User Interface)即图形用户界面,它能够使应用程序看起来更加友好;创建容器(即面板)时需继承JFrame类,JFrame类位于javax的swing包内,所以应该导入 swing(import javax.swing.*)。窗口和面板一般被称为容器组件,面板镶嵌在窗口上,面板上可以镶嵌面板,可以镶嵌组件,可以进行布局。java图形界面的基本组成部分是组件,组件是一个以图形化的方式展示在屏幕上并可以与用户进行交互的对象,面板与窗口是最常用的两个容器,组件不能
2021-12-13 18:08:36
3133
原创 Stream流
1.概述首先来了解什么是流,流是一种从支持数据操作的数据源(集合与数组等)生成的元素序列;Stream流时java8的新特性,可看作一种遍历数据集的高级迭代器,同io流不同,出现的原因是数组和集合中的操作有些过于简单,Stream流中提供了更加丰富的方式,且流程操作并不影响原来的集合和数组。Stream流常于Lambda表达式联合使用。2.Stream的获取流2.1集合中的Stream()参数列表中是一个泛型的可变参数public static void main(String[] a
2021-12-11 19:52:54
199
原创 java——Lambda表达式
1.Lambda表达式的概述在Collections类中存在一个sort()方法,可以在sort()方法中定义一个匿名内部类来指定排序规则。 Collections.sort(list1, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1-o2;
2021-12-10 20:31:07
524
原创 java——泛型
1为什么会有泛型的出现?当创建一个Collection集合对象时,指向new ArrayList(),父类指向子类Collection e=new ArrayList();此时对象e的类型不明确,默认为Object类型,在需要时向下转型,可能会出现转型异常,这时虽然可以通过instenceof关键字处理这类问题,但是在有需要的情况下会出现多种转型异常,这时就会造成麻烦,因此出现了泛型的需求。Collection g=new ArrayList(); for (Objec.
2021-12-10 15:16:37
180
原创 集合中的Collections类
概述:与Collection接口不同的是,Collection接口是集合中的一个顶级接口;而Collections是集合中的工具类,主要包含对集合的各种操作,可直接通过Collections调用1.addAll(Collections<? super T> c,T...elements) 只服务于单列集合的一种方法,增加元素于集合的末尾T...elements是定义可变参数的一种语法,本质相当于一个数组,可以传进多个T型参数,适用于不知道需要传入多少个参数时,一个参数列表只能有一个,且.
2021-12-09 15:08:30
495
原创 List集合的迭代与Set集合的迭代(即遍历)
1List集合的迭代(即遍历)共三种方式1.1for循环特点:支持在遍历期间删除元素import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Iterator;public class BianLi { public static void main(String[] args) { List<String> e=new A
2021-12-05 14:55:24
1123
原创 第七章.集合——单列集合——List
1.ArrayList(数组列表)特点:查找效率高,实现了长度可变,在内存中分配了连续的空间创建ArrayList对象时建议使用有参构造方法,使用无参构造时,默认容量为101.1add()方法 无参时默认添加到数组末尾,有参数(索引,添加的元素)时,添加到指定索引处添加元素时,首先要判断容量是否足够添加,如果无法完成添加,需要先扩容,再添加元素时,此时的容量为原来的1.5倍。public class ArrayList1<T> { public static vo.
2021-12-02 23:35:19
489
原创 第七章.集合及泛型
1.集合1.1集合概述集合与数组相似都是一种容器,可以存储一组数据,集合的出现是因为有这样一种需求(程序在运行时,数据数量会不断发生变化,)对于数组而言:特点:同一类型(即就是定义时需要声明数组的类型,这个数组就只能存储这类数据);创建时指定容量,长度不变;在一片连续的内存空间中存储(注:必须是连续空间,如果并未指明空间是否连续,则无法确定是否可以创建一个数组)不足之处:长度固定,无法改变1.2集合体系(仅包含单列集合)1.3常用的方法(即单列集合中共有的方法)创建对
2021-11-30 21:47:43
230
原创 第六章.异常(Exception)
1.异常概述异常是用来封装错误信息的一种机制;它由异常类型,提示信息,报错的行号提示三部分组成;编译不发生报错,但会中断运行。2.常见异常类型2.1数值异常:ArithmeticExceptionpublic class ChangJianYiChangDome1 { public static void main(String[] args) { int a=10; int b=0; int c=a/b; //数值异
2021-11-30 18:56:01
327
原创 第五章.常用类.java.API概述——Date类,Calendar类,SimpleDateFormat类,BigInteger类,BigDecimai类
1.Date类Date类位于java.util包,常用来处理时间和日期的一个类,不过处理日期的功能逐渐被Calendar类所替代。一个Date对象表示系统运行到此时的时间(从1970年1月1日00:00:00开始计算,单位为毫秒)构造方法:创建的对象默认的值系统运行到此时的时间Date date=new Date();可通过构造方法将Long类型(可通过System中的currentTimeMillis()方法获取)的数据转换为Date类的数据2.Calendar类(日期类)C
2021-11-25 22:05:11
300
原创 第五章.常用类.java.API概述——StringBuffer类,StringBuilder类,Math类,System类,Random类
1.StringBuffer类,StringBuilder类StringBuffer类与StringBuilder类相似,方法相似,这里以StringBuffer类为例。1.12.Math类包含了一些数学中常用的计算方法2.1abs()
2021-11-21 17:20:40
240
原创 正则表达式
1.字符类1.1 [abc] 表示匹配a或者b或者c1.2 [a-z] 表示匹配a至z中的小写字母1.3 [A-Z] 表示匹配A至Z中的大写字母1.4 [a-zA-Z] 表示匹配字母1.5 [a-d[m-p]] 表示匹配a-d与m-p并集的字母1.6[a-z&&[def]] 表示匹配a-z与def的交集1.7[a-z&&[^bc]]...
2021-11-18 22:03:43
147
原创 第五章.常用类.java.API概述——String类——判断,转换,构造三类方法
1判断功能方法1.1equals()判断字符串中每一个字符是否相等,区分大小写public class Panduan { public static void main(String[] args) { String s="abc"; String s1=new String("abc"); System.out.println(s.equals(s1)); //判断两个字符串是否内容相等}}//输出结果:true
2021-11-16 21:59:05
458
原创 第五章.常用类.java.API概述——object类(toString方法,equals方法);Arrays类(equals方法,sort方法,binarysearch方法,copeof方法)
1.java.API概述直译为应用程序编程接口API——java语言中实际提供的类与接口API文档——对java中提供的类和接口中的功能进行说明的文档2.object类2.1toString()方法以此为案例public static void main(String[] args) { Car car=new Car("迈巴赫",880000); System.out.println(car); }输出一个对象时,如果类中无toSt
2021-11-13 17:45:58
328
原创 第三章.java的面向过程和面向对象的设计思想(5)——接口, final关键字
1.接口1.1简述:接口与抽象类相似,可看做一个更彻底的抽象类,二者都是位于顶层,未被实现接口只是起到了一个设计功能的作用定义形式://定义一个接口public inplements 接口名{}//定义一个类实现一个接口public class 类名 interface 接口名{}//定义一个接口继承一个接口public inplements 接口名 extends 接口名2规定:接口之中默认抽象方法的修饰符为 public abstract;默认成员变量的修饰符为 p.
2021-11-13 13:26:04
86
原创 第三章.面向对象语言的三大特征:封装,继承(方法的重写),多态
1.抽象类概念:如果一个类中没有足够的信息来描绘一种类那么就称为这种类为抽象类,抽象类也是类的一种,抽象是一种概念。抽象类的格式public abstract void Animals{}特点:抽象类不能创建对象(因为抽象类中包含有抽象方法),但可以通过父类的引用执行于类对象来创建一个对象。一个类中如果有抽象方法,那么这个类一定是抽象类。一个类如果是抽象类,但不一定会有抽象方法。2.抽象方法只有声明没有实现的方法,用abstract修饰public abstract
2021-11-09 22:00:53
97
原创 第三章.java的面向过程和面向对象的设计思想(4)——包,访问权限修饰符,抽象类,抽象方法
1.包概念:为了更好的组织类,区别于类名的一个命名空间包的命名特点:一般情况下为小写字母,可通过.号来区分包的级别:第一级 指该项目的类型,如com,org,gov等,第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei 等第三级 指项目的名称,如:bcms,oa,erp,cms等第四级 指项目模块的名称,如:bean,action,exception。作用:防止与类名发生重复可按照不同功能去管理类控制访问权限(主要通过访问权限修饰符来实现
2021-11-06 19:19:22
81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人