- 博客(37)
- 资源 (3)
- 收藏
- 关注
原创 Java 对象排序 重写compare 方法
Collections.sort(strategySelectDetailListVOS, new Comparator<StrategySelectDetailListVO>() { @Override public int compare(StrategySelectDetailListVO o1, StrategySelectDetailListVO o2) { if(Objects.equals(o1.getStrategyTypeCode(),o2...
2022-05-23 17:02:05 1288
原创 不调用库函数实现字符串的反转(如果存在非字母的特殊符号则不反转)
public class StringReverse { public static void main(String[] args) { String word = "china will be great again!"; String newWord = reverse(word); System.out.println(newWord); } public static String ..
2020-10-15 11:19:13 446
原创 双重检测单例模式
一 场景在多线程场景下,当一个线程判断instance为null时 ,他会新建一个实例,那么问题来了,当A线程发现对象实例为空时,准备新建一个实例,这时cpu轮询到B线程,B线程也察觉对象实例为空,它也会新建一个实例,这样就破坏了单例模式。二 解决方案首先对象实例必须是全局共享的,用volatile修饰,然后在判断对象实例为空之后要将创建一个工厂方法的同步锁,在其中再判断一次实例是否为空,这样当A线程持有对象锁创建实例后,B线程拿到锁他会再次判断是否存在实例对象,这时A线程已经创建..
2020-09-06 08:35:47 428
原创 java 虚拟机垃圾回收机制
首先来看一下java运行时数据区的划分线程私有虚拟机栈 :存储当前栈桢 局部变量 操作数栈 动态链接 方法出口等 每一个方法的执行就对应着栈桢在虚拟机栈中的入栈出栈过程程序计数器:因为线程要被cpu轮询来获取使用权,程序计数器的作用就是记录当前线程字节码的执行行数.本地方法栈:本地方法栈(Native Method Stacks)与 Java 虚拟机栈所发挥的作用是非常相似的,其区别不过是虚拟机栈为虚拟机执行 Java 方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的 Na
2020-08-23 11:43:32 190
原创 java 中的Volatile 一种稍弱的同步机制
Volatile原理volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。声明变量是 volatile 的,JVM 保证了每次读变量都从内存中读,跳过 CPU cache 这一步.当一个变量定义为 volatile 之后,将具备两
2020-08-19 19:43:37 271
原创 面试热门之ThreadLocal详解及源码解读
ThreadLocal简介ThreadLocal是java.lang包下的一个类,以下为官方介绍这个类提供线程局部变量。这些变量与它们的普通对应变量的不同之处在于,每个(通过其get或set方法)访问一个变量的线程都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中希望将状态与线程(例如,用户ID或事务ID)关联的私有静态字段。每个线程都有一个对其线程局部变量副本的隐式引用,只要线程是活的并且ThreadLocal实例是可访问的;在一个线程离开后,它的线程本地实例的所有副本.
2020-08-18 17:28:21 128
原创 Linux 安装Git 上传代码到GitHub
Windows 安装Git使用过程中会有许多其它问题,例如SSH等,所以这里选择Linux安装 非Linux系统的化也不用担心,只需要安装一台虚拟机即可正常使用。安装Gityum -y install git查看是否安装成功git --version默认 安装路径为 /usr/libexec/git-core目录下这里可以看到安装的版本比较老,有需求的可以官网手动下载源码编译安装Git官网下载地址创建一个目录作为Git库mkdir /usr/local/Git
2020-08-18 11:48:32 203
原创 类的实例化方法调用顺序
类加载器实例化时进行的操作步骤:加载 -> 连接 -> 初始化父类静态代变量 父类静态代码块 子类静态变量 子类静态代码块 父类非静态变量(父类实例成员变量) 父类构造函数 子类非静态变量(子类实例成员变量) 子类构造函数...
2020-08-17 10:47:34 206
原创 java面试题 附答案 持续更新ing
1 32位和64位的jvm中int类型变量的长度是多少32位与64位的jvm中,int类型变量的长度是相同的,都是32位或者4个字节2 表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。分区表:当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个“表空间”(物理文件上),这样查询数据时
2020-08-17 10:35:38 224
原创 队列poll 与 remove 方法的区别
poll()和remove()都是从队列当中抽取一个元素,但是poll在获取元素失败时会返回空,而remove()失败时会抛出异常.
2020-08-17 09:32:58 714
原创 选择排序原理及java实现
原理迭代数组,每次都取其中最小,与所在位置元素进行交换 例如 待排序数组为 [3,5,6,7,1,2] 第一轮循环i 为0 ,最小元素为1 将 1和3交换,继续迭代 i 为1 将5与2交换直到得到一个有序的数组。代码实现public class SelectionSorter{ private int[] a;//排序方法 public sort(){ for(int i =0;i<a.length;i++){...
2020-08-12 21:05:10 129
转载 互联网协议五层模型通俗理解
1 实体层 把电脑连接起来的物理手段,规定了一些网络的电气特性,用于传输0 1信号。2 链路层 在实体层上方确定了0 1 的分组方式 以太网协议 帧 标头 数据 MAC 地址 广播 网络内的每台机器都广播3 网络层 路由方式 网络地址 确定指望--> 通过Mac地址群发 Ip 规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。 网络地址...
2020-08-09 15:22:11 558
原创 ErrMsg network is uncrable 虚拟机网络问题
虚拟机挂起了几天再次使用时发现网路出现问题,无法ping到外网,无法重启网路服务 尝试了很多方案最后用以下方法完美解决。解决方式: 禁用NetworkManager 1. systemctl stop NetworkManager 2. systemctl disable NetworkManager 重启之后,网络恢复正常...
2020-08-08 08:54:36 167
原创 python字符串转日期函数
from datetime import datetimedef str2date(s): s=str(s,encoding='utf-8') return datetime.strptime(s,'%d-%m-%Y').date().weekday() #这里转换为星期几 以float形式返回
2020-08-08 08:22:06 440
原创 Centos7安装redis 并配置远程访问,开机自启动详细教程
一 解压与安装1. 下载redis安装包wget http://download.redis.io/releases/redis-4.0.6.tar.gz2. 解压压缩包tar -zxvf redis-4.0.6.tar.gz3. yum安装gcc依赖yum install gcc4. 跳转到redis解压目录下cd redis-4.0.65. 编译安装make MALLOC=libccd src && make ...
2020-08-06 17:09:19 318
原创 java 判断是否为回文
回文即正数这个位置的数,与反着数这个位置的数相同,那么就构成回文例如:abcba接下来使用java语言实现判断某个字符串是否构成回文方案一private static boolean isPalindrome(String s){ if (s.length()<=1){ return true; }else if( s.scarAt(0)!=s.charAt(s.length()-1){ return false;...
2020-08-06 14:19:35 505
原创 java实现fib数列
fib数列即除第一个,第二个元素外,本元素为前两个元素之和/*fib后一个数为前两个数的和*/public static void fib(long index){ if(index==1){ return 1 ; }else if(index==2){ return 1; }else{ return fib(index-1)+fib(index-2);...
2020-08-06 13:44:58 924
原创 Java通过迭代计算阶乘
阶乘的原理比较简单,这里直接上代码/*递归实现阶乘*/public static long factorial(int n){ //终止条件 if(n.length==1){ return ; }else{ return n*factorial(n-1); }}...
2020-08-06 13:40:59 614 1
原创 Python动态爬取贴吧数据并储存到mongo
首先生成待爬取的地址,及贴吧名存入redis代码#将爬取到的数据存到redisimport redisfrom urllib.parse import urlencodefrom astropy._erfa.core import pnfrom Crypto.Random.random import choice class SaveUrlToRedis(): def __init__(self,url,queryString,pageNum): s...
2020-08-04 15:21:34 479
原创 黑洞数筛选Python实现
'''黑洞数由组成这个数的数字组成的最大数减去最小数等于其本身例如 495954 - 459=495'''实现思路迭代此数值段的所有数,将数转换为String类型,通过str的sorted方法降序排序得到最大数,升序排序得到最小数,如果最大数-最小数=本身,则输出这个数def blackHole(n):#n为位数 start=10**(n-1) # 起始数 end=start*10-1 #终止数 #依次测试每个数 for i in ...
2020-07-30 17:30:51 858
原创 Python操作redis数据库
准备工作下载驱动pip install redis导入redisimport redisredis = redis.StrictRedis(host='localhost', port=6379, db=0)#存取redis.set("name","liuwei")redis.get("name")#设置值 键不存在时执行设置操作print(redis.setnx('fruit1', 'banana')) # fruit1不存在,输出为...
2020-07-30 16:55:26 145
原创 Python 操作MongoDB
1下载驱动包pip install pymongo2导入依赖包+Testimport pymongoclient =pymongo.MongoClient('mongodb://127.0.0.1:27017')client输出MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)3指定数据库#指定数据库db=client.test4
2020-07-30 16:27:25 176
原创 Python 连接Mysql数据库并进行增删改查操作
与java操作数据库类似,首先需要导入驱动,需要下载驱动包pip install pymysql下载成功之后导入pymysqlimport pymysql这里测试一下是否成功导入conn = pymysql.connect('localhost',user = "root",passwd = "a",db = "test")print (conn)print (type(conn))输出 如下,则连接成功<pymysql.connections.Conn
2020-07-30 15:23:05 419
原创 Byte 类型面试题
代码片段:byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5; b3=(b1+b2); System.out.println(b3+b6);关于上面代码片段叙述正确的是()A输出结果:13B语句:b6=b4+b5编译出错C语句:b3=b1+b2编译出错D运行期抛出异常答案 C byte数据类型如果不被final修饰在运算时会被提升为int类型,会存在类型不匹配问题...
2020-07-28 14:25:59 235
原创 java面试题之 封箱与拆箱 案例加源码详细解读
java的基本数据类型 java有八种基本数据类型可以不必new 而直接使用 分别为4种数值型 byte short int long 2种浮点型 float double 1种布尔型 boolean ...
2020-07-25 18:15:06 248
原创 一个线程从出生到死亡,线程的生命周期详解
1新建状态当调用new关键字创建一个线程时,此时这个线程并没有真正的执行,它处于新建状态。2就绪状态当这个线程调用start方法后,这个线程将处于就绪状态,此时线程依然没有执行,而是要等待cpu的调度。3执行状态当此线程被cpu轮询到时,他将活得一个时间片,在一定时间内拥有执行权限,当时间片用完后将返回等待队列。4阻塞状态当一个线程调用wait,sleep,join等方法时,线程将进入阻塞状态,调用wait方法会释放锁,涉及线程间的通信需要其它线程唤醒,调用sleep方法睡...
2020-07-23 09:22:12 290
原创 Windows杀死Tomcat进程
1.首先查找到占用8080端口的进程号PID是多少 CMD>netstat -ano | findstr 8080 这个命令输出的最后一列表示占用8080端口的进程号。2.kill掉这个进程 CMD>taskkill /F /PID 7076这样8080端口就是释放了。netstat -ano | findstr 8083taskkill /F /PID 4856...
2020-07-23 08:58:05 162
原创 Shell(希尔)排序Python实现
#shell 相当于多路插入排序 首先计算一个路由值 然后根据路由值调用插入算法。x=[1,5,8,9,3,2,4]y=x[::]def shell_sort(y): n=len(y) dk=n//2 while dk>=1: shell_insert_sort( y,dk ) dk=dk//2 def shell_insert_sort( y,dk ): n=len(y) for ...
2020-07-22 20:31:06 165
原创 插入排序原理加Python实现
#插入排序 假定有一个已拍好的子集 将值插入到这个子集中 On -On2x=[1,5,8,9,3,2,4]y=x[::]for i in range(1,len(y)): temp=y[i] j=i while j>0 and y[j-1]>temp: y[j]=y[j-1] j=j-1 y[j]=temp print( y )结果[1, 2, 3, 4, 5, 8, 9]...
2020-07-22 19:41:37 80
原创 选择排序的python实现
选择排序python实现选择排序 即先找出一个最小元素排在最左边 如果有比他小的元素则交换索引位置 若最小元素不等于所记录的最小元素 则交换两者的值。以下为代码实现def selectionSort(arr): for i in range(len(arr)-1): minIndex=i for j in range(i,len(arr)): if arr[minIndex]>arr[j]: ...
2020-07-22 17:08:08 124
原创 Python实现冒泡排序
Python实现冒泡排序冒泡排序简介 外层循环控制总排序次数即array.length-2次 内层循环控制当前元素比较次数即array.leng-2-i次,后一个值大于当前值则将两个值交换。python实现def bubble_sort(array): if len(array)<2: return array else: for i in range(len(array)-1): f...
2020-07-22 16:30:30 288
原创 页面刷新时加载数据与数据修改时刷新页面
页面刷新时加载数window.onload= function () { $.ajax({ url : "back.do?op=findAll", dataType : "JSON", success : function(data) { ...
2020-07-11 10:16:45 937 3
原创 SyntaxError: identifier starts immediately after numeric literal错误解决
错误原因将以数字开头的字符串直接作为参数传入function参数中例如'<td class="bikecon"> <a href="javascript:void(0)" onclick="deleteFunction( ‘+ id+ ’ )">delete</a></td>'正确示范'<td class="bikecon"> <a href="javascript:void(0)" onclick="delete.
2020-07-10 16:56:15 672
原创 记一个超级深坑 Failed to destroy end point associated with ProtocolHandler [“ajp-nio-8009“]
首先是异常信息java.lang.NullPointerException at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:315) at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:491) at org.apache.tomcat.util.net.AbstractEndpoint.destroy...
2020-07-10 13:34:21 718
原创 驾考知识自查
驾考知识自查1事故的种类没有车辆追尾路段,只有事故多发路段2驾驶证 行驶证的换领驾驶证为核发地 行驶证为登记地3山坡挂挡问题p=fv 机动车功率一定 抵挡获得更大的牵引力,但不可以松开加速踏板,松开会导致遛坡4违规处罚问题饮酒后驾驶机动车的,处暂扣六个月机动车驾驶证,处一千元以上两千元以下罚款,再饮酒被罚的拘留10天,处1000以上2000以下罚款,并且吊销驾驶证件。令,酒驾扣12分,可补考,吊销两年内不可以申请。5标志类BRT快速公交专用道带箭头且直的为..
2020-07-02 09:47:15 103
Java面试总复习.xmind
2020-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人