- 博客(20)
- 收藏
- 关注
原创 JVM对象引用以及回收算法
java回收机制概念引用回收算法概念为了避免内存溢出,内存泄漏的问题,虽然java有自动垃圾回收机制,但是在高数据量,高并发时,我们仍需要去注意java的回收机制。引用Java回收算法需要判断对象是否存活,判断存活的方式,都与“引用”有关,引用的含义是指:引用类型的数据中,存在其他对象的内存地址,我们称这块内存存在引用。java中将引用分为四个强度等级:强引用 ,java中最普遍存在的引用方式,只要强引用还存在,虚拟机宁可报出“OOM”异常,也不会对强引用进行回收;软引用 ,指的是有用但是非必
2020-12-31 10:41:43 228
原创 kotlin基础语法练习
kotlin基础语法练习package com.example.kotlintest2import kotlin.math.maxfun main(){ print("请输入c的值") var c = Integer.parseInt(readLine()) var a: Int = 10 var b: Int = 15 println("a + b = "+ getSum(a,b)) println("a 和 b 中大一些的是" + getBig(
2020-10-23 21:32:59 285
原创 java常见锁
CAS算法:保证数据操作的原子性内存值 V 预估值 E 更新值 N当V==E的时候 将N的值赋给V;如果V != E的时候 说明其他线程已经将预期值进行更改,N值想不会赋值给V。不管赋值是否成功。CAS算法会返回当前的V值。JAVA锁:一、重入锁(ReentrantLock)与内部锁(Synchorized):重入锁与内部锁的功能上接近,内部锁能完成的事情,重入锁都可以实现。不同在于1.重入锁需要在finally中关闭锁,而内部所不需要关闭,会自动关闭。2.重入锁会通过condi
2020-08-04 19:32:42 335
原创 BFS计算无向图的最短路径问题(普里姆算法prim)
无向图计算最短路径:通过建立二维数组来表示两点之间是否可达,通过寻找连通分量,每次找到过一个点就将点放入到list集合中,并且当前连通量的个数减去一个,每次寻找的点都必须是到达list中最短的,并且当前连通量的个数减去一个,当连通量等于1的时候,那么list中的各个点的路径就是无向图的最短路径。//无向图最小生成树public class Prim { public static void main(String[] args) { Prim p = new Prim(); //
2020-07-25 20:32:43 1225
原创 redis事务以及watch监视
redis事务:一次执行多个命令,相当于一个命令集合,按顺序执行,不许加塞。mulit:开启事务,命令入队。exec:通过exec查看队列中的语句结果。discard:放弃事务操作。watch:开启监控,监控的key如果被其他线程更改,当前操作会失败,语句为;watch key1 key2 (可同时监控多个key)开启multi后,指令变为入队,所有命令都会入队,执行exec后拿到结果。当multi开启后,如果出现严重的逻辑问题,那么队列中的所有命令全部失效,直到执行到exec。如果出现比
2020-07-22 21:33:51 296
原创 Redis如何保证持久化
redis通过两种方式RDB,AOF进行持久化。redis 默认开启rdb,关闭aof。可以都开启,但是aof的优先级会比rdb更高一些。RDB:时间段内缓存中的记录写入磁盘。流程:1.redis会单独创建fork2.满足rdb触发条件后。数据写入临时文件dump.rdb3.新的dump.rdb文件会覆盖原来的dump.rdb文件。fork:与原进程的数据保持一致,是一个全新过程,新进程会作为原进程的子进程。rdb快照的配置策略:三种情况下会触发rdb。900S(15min)之内key
2020-07-20 21:55:46 306
原创 Redis 基本类型(hash、set、Zset)入门篇三
一、hash:key所对应的值为键值对。hset key k v 创建hash类型的键值对hget key k 获取k所对应的valuehmset/hmget 同时设置/获取多个hash键值对。hgetall key 获取所有的kvhkeys/hvals key 获取所有的key/valuehdel key k 删除key中的k键值对。hlen key 获取key的长度(有几个键值对)。hexists key k 判断key中是否存在 k。hincrby/hincrbyfl
2020-07-18 16:19:26 256
原创 Redis 基本类型(String、List)的操作入门篇二
Redis支持五大数据类型。String:二进制安全,可以存放任何数据,最多可存放512M数据。hash:类似于java中的hashmap,redis中主要存放对象。list:类似于java中的LinkedList,是一个双链表。set:类似于hashset,数据无序,不可重复。zset:有序集合。redis 通过type key 查询当前key的类型:一、String类型:set key value 创建String 类型键值对(如果key存在 旧的value 会被覆盖)。get ke
2020-07-18 15:12:11 197
原创 Windows Redis入门篇一
在3V(实时、多样、海量)3高(高并发、高可扩、可性能)的互联网数据下,传统的关系型数据库无法再支持大量的数据。目前利用Nosql技术挡在关系型数据库前,减少关系型数据库的压力。Nosql不再采用关系型数据库的ACID,具有易扩展,数据之间没有关系的特性、大数据量高性能。本文主要讲解Redis在windows下的基本操作。Nosql三大特性:C:(强一致性),A(实用性),P(分区容错性),三大特性在不同需求时,最多可以满足两个,而Redis满足CP。Redis 三大特性:KV键值对、缓存、持久化。W
2020-07-18 12:16:47 310
原创 Synchronized关键字的工作原理
synchronized保证了开发过程中多线程操作的线程安全。在多线程对共享资源进行非原子性操作的时候我们需要对共享资源上锁。(非原子性操作指线程完成的不是某个事情,而已操作一组任务)JAVA中synchronized中实际就是给对象上锁,对象主要表现为三种形式,1.当前对象this,对实例化方法进行上锁。2.class,对静态方法进行上锁。3.new Intance,对代码块上锁。注:锁只有一把,同一对象下给甚至多个方法上锁,不允许同时访问。synchronized锁对的是对象,那就说一下对
2020-07-12 17:57:18 163
原创 判断一个链表是否为闭环以及相关算法(JAVA)
判断一个链表是否闭环,需要判断两个指针在是否有相等的情况,我们采用内部类的方法,对链表的节点进行定义,如果有链,快指针会比慢指针提前进入链中,进入环后,快指针与慢指针终会相遇代码如下。public class LinkO { //定义内部类。内部类中含有下一节点的属性 class node{ node next = new node(); } //定义头结点 private node head = new node(); public static void main(String[]
2020-06-21 16:48:04 1129
原创 封装一个可以传入任意类型的数组
package dataPractice;public class Array<E> { private E[] arr; private int size; //数组实际的元素个数 //添加有参构造器,在创建数组的时候直接赋值数组的属性 public Array(int capacity){ arr = (E[])n...
2019-02-17 17:22:09 816
原创 JVM基本原理
java源代码文件通过(.java)文件通过编译器变成字节码文件(.class)文件,然后传入到类加载器中去拆分加载每一个字节码文件,然后交给JVM去运行程序,运行程序所用到的对象,方法,以及去寻找某一行的程序数据等 都会交由运行时数据区(RDA)去处理RDA中的结构如下**1.*程序计数器虚拟机在加载文件时,会通过计数器去记录正在执行的虚拟机字节码的地址,如果是java方法(用java...
2019-02-01 14:12:50 298
原创 python笔记
字符串的使用# -*- coding: utf-8 -*-"""Created on Mon Dec 24 20:23:01 2018@author: Administrator"""# =============================================================================# def init(param,*fu...
2019-01-02 20:25:28 95
原创 python类的使用 超类 多个超类接口 和内省 以及一些类的方法的判断
测试# -*- coding: utf-8 -*-"""Created on Thu Dec 13 20:37:35 2018@author: Administrator""""""破坏私密方法 不建议使用"""class Person: def __serect(self): print("this is a serect")
2018-12-15 21:26:31 434
原创 json的应用
界面<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8">
2018-12-15 16:53:50 204
原创 关于Ajax的使用
创建的jsp文件代码如下<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8&quo
2018-12-15 15:07:12 234
原创 java文件操作实现序列化
java实现对象的序列化,将对象以二进制传入文件package com.lq.dao;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;im...
2018-12-13 21:24:45 273
转载 jsp实现不允许其他页面访问该网页的限制
&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;%&amp;gt; &amp;lt;%@ page import = &quot;java
2018-12-13 21:24:15 972 2
原创 关于使用jsp servlet web.xml的配置 jdbc(oracle)的第一个带有界面的代码
关于登陆界面<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import = "register.Register" %><%@page import="java.text.SimpleD
2018-12-13 11:58:38 588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人