自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 ThreadLocal与线程池的相关理解

ThreadLocal线程变量,为每一个线程复制一份变量,每个线程对自己内部的变量进行操作,实现线程封闭。ThreadLocal原理分析底层是维护了一个ThreadLocalMap,key是当前线程,value是线程变量。ThreadLocal造成内存泄漏问题底层的ThreadLocal的key是一个弱引用,容易被回收掉,导致key为null,而value是一个强引用关系,如果当前线程一直不结束,key为null的entry的value就会存在一条强引用链,无法回收,所以就引起内存泄漏。解决办法

2021-07-22 20:55:13 1088

原创 Java并发编程

并行与并发并行:在同一时刻可进行多种操作并发:在同一时间段发生多种操作,微观上是串行操作多线程解决性能问题提升CPU的利用率多线程并行问题安全性 性能(CPU的切换)死锁可见性 有序性 原子性java内存模型(JMM)硬件中: CPU --内存-- IO 设备上存在速度的差异问题做出了以下优化CPU 添加了缓存,以环节与内存直接的速度差异操作系统添加了线程进程,分时复用CPU,均衡CPU与IO的速度差异编译代码优化,对代码进行重排java内存模型java内存模型就是规范计

2021-07-21 21:00:41 141

原创 JVM之执行引擎

概述执行引擎是java虚拟机核心的组成成分之一.首先我们知道jvm的主要任务是装载字节码到其内部,但是字节码并不能够直接运行在操作系统中,字节码指令并不是等价于本地机器指令,那么执行引擎的作用就在这里.想要一个java程序运行起来,通过执行引擎将字节码指令解释/编译(后端编译)为对应平台上的本地机器指令.也就是说,执行引擎是将高级语言翻译称为机器语言.解释器与JIT编译器解释器:java虚拟机启动,根据预定义的规范对字节码采用逐行解释,将每条字节码文件的内容翻译为本地机器指令执行.JIT编译器:虚

2021-07-21 20:58:46 149

原创 JVM之本地方法接口

本地方法(Native Method)一个本地方法就是一个java调用非java代码的接口,该方法的底层是由非java语言实现的,比如C语言.在定义一个本地方法时,不提供实现体,因为其实现体是由非java语言实现的.关键字native可以与其他所有的java标识符连用,abstract除外.本地方法的用处:1.与java环境外交互在java应用时有时会需要与java外面的环境交互,这是本地方法存在的主要原因.本地方法这种交流机制为我们提供了一个简单的接口,不需要去了解java应用之外的繁琐细节.

2021-07-21 20:39:53 119

原创 对垃圾回收相关算法的理解

垃圾标记阶段算法判断对象在内存中是否存活。两种方式来进行判断对象存活引用计数算法为每一个对象保存了一个引用计数器算法,具体过程是当A对象被引用时,计数器加一,当引用失效时,计数减一,当计数器为0时,表示该对象不会被使用,可以进行回收。缺点:该算法无法解决循环引用问题。需要单独的计数属性,增加了内存空间消耗。可达性分析算法以根对象集合为起始点,按照从上往下的方式寻找被根对象集合(GC Roots)所直接或者间接连接的对象是否可达,这条链路就被称为引用链,如果不存在这条引用链中的对象,则是可以被回

2021-07-19 21:04:26 78

原创 java学习之网络编程

网络编程概述计算机网络将分散的、不同地理区域的具有独立功能的计算机系统,通过通信设备、线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。网络编程的目的为了直接或者间接的通过网络协议与其他计算机进行通信。需要解决的问题如何通过网络来找到或者说定位一台主机或者对台;找到主机后如何高效的进行传输数据。网络通信协议:IP/端口号IP地址:inetAddress唯一的表示Internet上的计算机本地回环地址(hostAddress):127.0.0.1 主机名(host

2021-05-25 10:52:47 83

原创 jvm详细整理之运行时数据区(1)

运行时数据区程序计数器是占用较小的一块内存空间,可以看做是当前线程所执行的字节码的行号指示器(标记着线程执行到哪一步了)。作用:用于存储下一条指令的地址,也就是即将执行的指令地址,由执行引擎来进行读取下一条指令。特点:占用空间小,执行速度快,线程私有,与线程的生命周期保持一致。任何时间,线程中都只有一个方法正在执行,也就是当前方法,程序计数器会记录当前线程正在执行的方法的jvm指令地址。但是如果执行的是native方法,则是未指定值。在程序中,分支,循环,跳转,异常处理,线程恢复等都是依靠程

2021-05-08 09:12:45 87

原创 jvm详解----本地方法接口

本地方法接口本地方法(Native Method)一个本地方法就是一个java调用非java代码的接口,该方法的底层是由非java语言实现的,比如C语言.在定义一个本地方法时,不提供实现体,因为其实现体是由非java语言实现的.关键字native可以与其他所有的java标识符连用,abstract除外.本地方法的用处:1.与java环境外交互在java应用时有时会需要与java外面的环境交互,这是本地方法存在的主要原因.本地方法这种交流机制为我们提供了一个简单的接口,不需要去了解java应用之外

2021-04-14 21:21:40 170

原创 jvm详解----jvm结构之类加载

类加载子系统的作用类加载子系统就是负责加载字节码class文件.类加载的信息存放于方法区的内存空间.类加载子系统就是负责class文件的加载,对于是否可以运行则由执行引擎这部分决定.class文件在其文件开头有特定的文件标识(以 CA FE BA BE 标识开头).类加载的过程如图所示为类加载的具体过程.加载阶段:在这个阶段,会通过类名获取此类的二进制字节流,然后将这个字节流所代表的静态存储结构转换为方法区的运行时结构,会在内存中生成一个代表这个类的java.lang.Class对象,作为方法

2021-04-13 21:41:04 116

原创 java学习之IO流

IO流File类File类是java.io包中很重要的一个类;在程序中一个File类对象可以代表一个文件或目录public class FileDemo1 { public static void main(String[] args) throws IOException { File f = new File("E:\\long.txt"); System.out.println(f.getName());//获取文件名 System.out

2021-03-09 19:47:00 88

原创 java学习之集合

集合泛型泛型,即“参数化类型”.就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式,然后在使用/调用时传入具体的类型.import java.util.ArrayList; /* 泛型 : 类型参数化 ,将类类型当参数一样传进去 任意单个大写的字母 可以有多个 传入的类型只能是类类型 没有定义类型时,默认object */public class TeatDemo<T,A> { T n

2021-03-09 19:41:43 100

原创 java学习之API

Math类java.Lang.Math类提供了一些静态方法用于计算,方法的参数和返回值的类型都为double型. double a= Math.abs(-3);//绝对值 System.out.println(a); double b = Math.pow(3,4);// a的b次幂 System.out.println(b); double c = Math.max(5.1,7.3); System.out

2021-01-18 20:33:21 94

原创 java学习之异常

异常异常的概念:在java程序中,在程序执行过程中所发生的的不正常当然情况称为异常.Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题.如:JVM系统内部错误、资源耗尽等严重情况.一般不编写针对性的代码进行处理.Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理以下是一些平时练习中所遇到的异常: //1.数组索引越界异常 java.lang.ArrayIndexOutOfBoundsExcepti

2021-01-18 20:31:27 141

原创 javaAPI--(基本数据类型包装类,object类,String类,Array类)

javaAPI概述API(ApplicationProgramming Interface)应用程序编程接口API是对java预先定义的类或接口功能和函数功能的说明文档目的是提供给开发人员进行查询说明java基本数据类型包装类在java中,基本数据类型并不是面向对象,在有些操作中会有一些不方便,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类.基本数据类型(8种)byte,short,int,long,float,double,boolean

2020-12-17 18:15:32 475

原创 java面向对象语言的三大特征(封装,继承,接口)

面向对象语言的三大特征封装封装:将类中某些信息隐藏在类的内部,不允许外部类直接进行访问,而是通过该类提供的方法进行访问和操作.封装的好处:方便修改,方便加入控制语句,隐藏类的实现细节,只能通过规定的方法访问.具体操作:属性使用private私有权限,方法使用public公共权限.this关键字:代表自身类的对象.使用this关键字引用成员变量,成员方法.​ 必须使用在非静态方法里.​ 常常用来区分同名的局部变量和成员变量p

2020-12-10 16:23:14 230

原创 java基础知识整理(对象与引用,static关键字,包,访问权限修饰符)

对象与引用引用类型:类,接口,数组.在java中除了基本类型之外都属于引用类型.基本类型:8种,整数型(byte,short,int,long),浮点数(float,double),字符型(char),布尔值(boolean).java中的对象是通过引用进行操作的.//自定义一个类Dogpublic class Dog {String name;String color;float price;}//创建一个对象Dog mt = new Dog(); /* Dog mt

2020-11-30 21:18:34 162

原创 Java基础知识整理(类,方法)

面向过程与面向对象的设计思想面向过程:解决一个问题,分析解决这个问题所需要的具体的步骤,然后实现这些步骤.面向对象:解决问题时先进行以分类大思想进行分析,然后以分类的形式进行解决问题.举个例子:把大象装进冰箱里面向过程:打开冰箱门​ 把大象装进去​ 关闭冰箱门面向对象:对此事件进行分类​ 人类: 装东西 操作…​ 大象:被装进冰箱​ 冰箱

2020-11-27 22:56:06 203

原创 数组排序--冒泡,选择,插入排序

数组冒泡排序思想与过程描述:相邻数据之间进行比较大小,比较出较大的(升序),然后交换位置,再与后一位相邻数据进行比较,以此循环.package Sortdamo;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { /*冒泡排序 相邻的两个值进行比较 */ int[]a=new int[]{5,3

2020-11-23 21:40:50 167

原创 稀疏数组的认识与理解

稀疏数组在二维数组的学习中,了解到有时候二维数组存有大量无效的数据,为零或者为空,占据了大量的空间,为了能更方便更少空间的描述此数组,即提出了稀疏数组的概念,也可以称为数组的压缩.稀疏数组的存储稀疏数组的第一行,分别记录原始二维数组的总行数总列数和具体有效的二维数组个数.接下来每一行分别存储着有效二维数组数所在行所在列和具体指.package feifan.day1;public class xishu { public static void main(String[] args) {

2020-11-23 21:11:02 229

原创 java--数组相关理解1

数组数组,是一组相同数据类型的数据的集合,具有连续性和线性.可以存储基本的数据类型,也可以引用数据类型.数组的声明数组声明的两种方式:数据类型 [] 数组名字 和 数据类型 数组的名字 [] /* 声明数组的两种方式*/ int[] a;//建议使用此种声明方式 避免混淆 int b[];数组的创建有三种创建方式. /*数组的创建 new 数据类型[数组的长度] 数组中的元素值为默认的初始值,int=0 String=null

2020-11-14 21:22:06 109

原创 java基础知识整理2

数据类型转换默认转化容量小的可以转化为大容量的数据类型,数据类型按照容量大小排序为:byte,short,char<int<long<float<double.其中byte,short,char之间不会相互转化,在计算时会转化为int类型. byte b=10; int a=b; long x=a; double y=x;强制转化容量大的转化为容量小的数据类型,需要强制转化符,但是会出现两种问题:溢出现象,精度降低. double a=1.98; int b=(

2020-11-14 20:15:00 135

原创 java基础知识的详细整理

标识符标识符是在java中对类,方法,变量等命名时使用的字符序列.命名规则强制规则:可以用大小写的英文字母,数字,下划线,$组成但是不能用数字作为开头,不能与关键字一样,但是可以包含关键字,不能包含空格,并且java中大小写区分严格人为约定:见名知意包名:英文单词命名,且为小写类名、接口名: 多单词组成时,所有单词的首字母大写,即驼峰命名法,如 TextName变量名、方法名 :多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写常量名: 所有首字母大写,下划线命名式,

2020-11-14 18:59:13 331

原创 简单制作百度注册页面

简单制作百度页面<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .d1{ background-image: url(img/reg_bg_min.jpg); width: 1350px; height: 650px; } #bd1

2020-11-08 16:03:00 3630 2

原创 对java的基础认识

为什么是javajava语言主要以应用程序为主,在各个方面领域涉及范围较为广泛,语言的使用量也是比较高的,而且在就业方面,也是深受欢迎~java语言发展史1991,名为sun公司,在詹姆斯.高斯林的带领下,需要研发出一种语言,其要求是能够程序运行时内存占用小,可以跨平台运行.在1995的时候正式确立;2004年9月Java1.5发布,其改名,并且命名方式为 5 6 7 8,其中, jdk5改动较大;2009年被oracle收购.java语言的特点开源,即开放源代码面向对象平台无关性,

2020-11-08 16:02:22 214

原创 制作淘宝界面的简易框架

(练习)淘宝页面的基本框架根据浮动,定位知识,做一个小练习,制作一个简易的淘宝页面框架.其代码如下<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .tb1{ width: 250px; background-color: #6495ED;

2020-11-07 09:50:02 2626

原创 对CSS浮动,定位的简单理解

基础概念清除浏览器的默认样式:浏览器自带设置一些标签的默认样式,默认的margin和padding,可以在编写过程前将这些默认值删除*{margin: 0;padding: 0;}文档流:标签在网页中排列时占用的位置,窗体的位置从上往下排列,每行中从左往右排列为一行.即文档流的默认标签会贴在上一个标签的右边,如果位置不足放不下则会另起一行,按照从左往右的顺序排放.浮动浮动:指的是标签脱离文档流,在父标签中浮动起来,行级标签和块级标签都可以浮动起来,行级标签浮动起来会变成块级标签.当一个标签

2020-11-07 09:47:01 157

原创 CSS之盒子模型的定义与理解

盒子模型盒子模型可以分为四个部分,分别是内容区,内边距(padding),边框(border),外边距(margin).盒子的大小即标签大小 = 内容区+内边距+边框.内容区内容区指的是盒子里放置内容的区域,其内容也就是文本内容,如果不设置边框,内边距,内容的大小就是盒子的大小,此区域可以设置高度和宽度,使用width和heigth标签,设置的是内容区的大小,而不是盒子的大小.#d1{ /* 设置内容区的背景颜色 */ background-color: #8A2BE2; /*

2020-10-28 19:54:08 508

原创 CSS的定义与基本语法

csscss是什么css是级联样式表(Cascading Style Sheets)级联:关联,联系,两部分内容之间的联系样式表:修饰网页的语法集优点:可以将页面内容与表现形式分离 可以重复利用css与html的关系:HTML是网页内容,css是定义网页的外观样式等.css做什么为HTML控制外观,布局css的基本语法css的三种样式表1.行级样式表行级样式表,即直接写在标签的行内.用标签style=“属性名=属性值…”<!-- 行级样式表--><p styl

2020-10-28 19:50:31 1560

原创 HTML表单

HTML–表单表单是可以输入或者选择的组件,用户输入信息数据,然后提交到后台服务器.表单标签form—表单标签,一块区域,组件写在标签内单行文本框input type=“text”—输入单行信息id=""—为标签定义id号,自定义的,唯一的,不可重复的,不能用数字作为开头name=""—自定义的,可重复的,向服务器提交数据的键value=""—向服务器提交的值placeholder=“请输入账号”—提示信息,在未输入数据内容前方框内显示的内容,输入数据内容后可被覆盖readonly=“

2020-10-25 08:57:21 333 1

原创 HTML-超链接锚点 表格

HTML超链接锚点定义锚点:< a name=“名字”> < /a>超链接寻找锚点:< a href="#名字"> 标题< /a><!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <a name="top">&

2020-10-20 21:47:59 672 3

原创 HTML概述

HTML概述html是什么超文本标记语言(HyperText Markup Language)超文本:网页语言内容标记语言:即标签,是用来标注网页内容<b>我的第一张网页</b> html做什么做网页HTML的基本语法开发工具HBulider x基本语法结构<!-- 声明html版本类型为html5 --><!DOCTYPE html><!-- 网页中的内容写在html标签中 --><html> &lt

2020-10-20 21:12:30 170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除