java
文章平均质量分 54
lumaomao_
哈哈哈哈哈哈哈哈
展开
-
身份证号校验(极简版)
java实现身份证号校验(极简版)原创 2022-04-20 23:41:34 · 1091 阅读 · 0 评论 -
selenium driver.findElements 元素操作、页面切换
selenium 元素操作selenium 窗口切换切换到iframedriver.switchTo().frame("demo");//有id,传入id.有name,传入name跳转到iframe后,返回到主窗体driver.switchTo().defaultContent();存在多个iframe,跳转到二级iframe后,返回上一级的iframedriver.switchTo().parentFrame();...原创 2021-01-13 16:11:45 · 771 阅读 · 1 评论 -
Selenium中webdriver中元素查找常用方法
Webdriver给出了多种寻找页面元素的寻找方法,如下图的自动提示所示(Selenium版本3.141.59)前提://加载浏览器驱动,定义WebDriver driverSystem.setProperty("webdriver.chrome.driver","驱动地址");//参考上一篇博文WebDriver driver = new ChromeDriver();下面我们按顺序来介绍 className className属性是利用元素的css样式表所引用的伪类名称来转载 2021-01-13 15:31:12 · 1871 阅读 · 0 评论 -
Selenium webdriver模拟登陆CSDN(webmagic java爬虫框架)
首先,所需jar包:链接:https://pan.baidu.com/s/1t1lcYDVS4iiTEXDacIm4Iw提取码:9l9r复制这段内容后打开百度网盘手机App,操作更方便哦原创 2021-01-13 11:09:59 · 413 阅读 · 0 评论 -
java多线程和线程安全——java内存模型
Java内存模型JMMJava内存模型(即 Java Memory Mode,简称MM本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM的主内存存储Java实例对象 包括成员变量、类信息、常量、静态变量等 属于数据共享的区域,多线程并发操作时会引发线程安全问题JMM中的...原创 2019-08-27 15:34:29 · 179 阅读 · 0 评论 -
java 泛型详解
好的博客记录:java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一原创 2019-08-22 23:14:43 · 97 阅读 · 0 评论 -
线程和进程
进程是资源分配的最小单位,线程是CPU调度的最小单位进程和线程的由来串行:初期的计算机智能串行执行任务,并且需要长时间等待用户输入 批处理:预先将用户的指令集中成清单,批量串行处理用户指令,仍然无法并发执行 进程:进程独占内存空间,保存各自的运行状态,相互间不干扰且可以相互切换,为并发处理任务提供了可能 线程:共享进程的内存资源,相互间切换更快速,支持更细粒度的任务控制,使进程内的子...原创 2019-08-07 23:46:17 · 132 阅读 · 0 评论 -
什么是java的反射机制
这篇博文讲解的非常到位:https://blog.csdn.net/sinat_38259539/article/details/71799078这篇博文写的也很优秀:https://blog.csdn.net/liujiahan629629/article/details/18013523记录一下重点:JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方...原创 2019-08-16 22:32:58 · 96 阅读 · 0 评论 -
Redis如何保证系统宕机数据不会丢失
我们都知道 Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。如下图所示,Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。快照是一次全量备份,AOF 日志是连续的增量备份。快照是内存数据的二进制序列化形式,在存储上非常紧凑,而 AOF 日志记录的是内存数据...转载 2019-08-12 11:14:14 · 5890 阅读 · 0 评论 -
java多线程和线程安全——synchronized、volatile
线程安全的主要诱因存在共享数据(也称临界资源) 存在多条线程共同操作这些共享数据解决问题的根本方法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据迸行操作。synchronizedsynchronized锁的不是代码,锁的都是对象互斥锁的特性互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制,这样...原创 2019-08-24 22:48:38 · 203 阅读 · 0 评论 -
Linux常见面试题
目录Linux的体系结构如何查找特定的文件find检索文件内容grep指令管道操作符 |对文件内容做统计awk指令(适合格式化的文档,类似于Excel的文档)批量替换文件内容sed指令面试中常见的用法:Linux的体系结构体系结构主要分为用户态(用户上层活动)和内核态 内核:本质是一段管理计算机硬件设备的程序(Linux启动后首先启动内核)...原创 2019-08-15 11:49:22 · 9075 阅读 · 3 评论 -
基本算法之动态规划
上接背包问题动态规划的基本步骤:最优子结构性质:找出最优解的性质,并刻画其结构特征; 建立递归关系:递归地定义最优值; 计算最优值:以自底向上的方式计算出最优值; 构造最优解:根据计算最优值时得到的信息,构造最优解。上面说到我们在分析动态规划的时候,一定要分析到造成动态规划的数组变动的参数是什么?我们看一下LeedCode第746题:我们先要知道我们的dp[]数组代表什...原创 2019-08-14 12:52:52 · 202 阅读 · 0 评论 -
java平台无关性
java为什么可以多平台运行Java源码首先被编译成字节码,再由不同平台的JM进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令。JVM如何加载.class文件java的反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意...原创 2019-08-07 16:44:57 · 120 阅读 · 0 评论 -
loadClass和forName的区别
类的加载方式隐式加载:new 显式加载:loadClass,forName(获取class之后用newInstance()方法来生成对象实例)loadClass和forName的区别类的装载过程区别Class forName得到的class是已经初始化完成的(加载数据库驱动用的就是这个) Classloder loadclass得到的class是还没有链接的(加快加载速度...原创 2019-08-18 23:23:45 · 252 阅读 · 0 评论 -
java类加载器(ClassLoader)
类从编译到执行的过程编译器将 Student.java源文件编译为Student.class字节码文件 Classloader将字节码转换为JVM中的Class<Student>对象 JVM利用 Class< Student>对象实例化为Student对象什么是ClassLoader它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式...原创 2019-08-18 22:21:13 · 207 阅读 · 0 评论 -
java多线程和线程安全——CAS
synchronized是悲观锁,CAS是一种乐观锁CAS(compare and swap)一种高效的实现线程安全性的方法支持原子更新操作,适用于计数器,序列发生器等场景 属于乐观锁机制,号称lck-free CAS操作失败时由开发者决定是继续尝试,还是执行别的操作CAS思想包含三个操作数——内存位置(V)、预期原值(A)和新值(B)...原创 2019-08-27 15:54:15 · 184 阅读 · 2 评论 -
Java线程池
实际操作参考Executors创建的4种线程池的使用为什么需要线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。线程池技术正是关注如何...原创 2019-08-27 16:51:46 · 147 阅读 · 0 评论 -
我的java线程相关
线程和进程多线程中sleep() wait() yield() join(), interrupt(),stop(),suspend(),setPriority()用法与区别原创 2019-09-17 23:38:15 · 116 阅读 · 0 评论 -
数据库SQL语句常见用法
Group by(having)解释:having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。我的理解就是真实表中没有此数据,这些数据是通过一些函数生存。select name as 姓名, count(name) as 人数,score as 分数 from st...原创 2019-09-17 00:20:16 · 452 阅读 · 1 评论 -
我的计算机网络相关
TCP/IP四层协议和TCP三次握手 计算机网络中的各种协议 Http和Https原创 2019-09-12 15:09:13 · 146 阅读 · 0 评论 -
我的MySQL相关
数据库常见面试题——索引 数据库常见面试题——锁 数据库常见面试题——事务原创 2019-09-12 14:57:40 · 131 阅读 · 0 评论 -
八大排序算法java代码、复杂度比较以及应用场景
目录八大排序算法冒泡排序插入排序归并排序快速排序基数排序选择排序希尔排序算法比较应用场景八大排序算法所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。冒泡排序基本思想:(图片转自这里)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后...原创 2019-09-12 10:51:04 · 743 阅读 · 0 评论 -
操作系统常见面试题
操作系统常见面试题操作系统学习之一:进程及其状态和数据描述 操作系统学习记录之二:进程的管理及切换 操作系统学习记录之三:多线程技术 操作系统学习记录之四:内核级线程和用户级线程 操作系统学习记录之五:多线程实现的混合策略 操作系统学习记录之六:并发程序 操作系统学习记录之七:临界区 操作系统学习记录之八:进程通信 操作系统学习记录之九:死锁的产生及解决死锁的方法 操作系统...原创 2019-09-11 19:01:34 · 158 阅读 · 0 评论 -
SpringMVC和MyBatis
Mybatis常见面试题总结SpringMVC常见面试题总结(超详细回答)原创 2019-09-06 23:43:16 · 324 阅读 · 0 评论 -
java常用类库和技巧
String,StringBuffer与StringBuilder的区别(参考)String改动字符串需要重新创建字符串对象(不可变字符串,底层被final修饰)【适用情况:操作少量数据】 StringBuilder线程不安全、但是速度快,所以多数情况下建议使用 StringBuilder 类。【适用情况:多线程操作字符串缓冲区下操作大量数据】 在应用程序要求线程安全的情况下,则必须使用 ...原创 2019-09-05 09:42:18 · 202 阅读 · 0 评论 -
深入理解java虚拟机之Java内存区域
目录1.程序计数器2.java虚拟机栈2.1 局部变量表和操作数栈2.2 局部变量表和操作数栈如何交互2.3 递归为何为引发java.lang.StackOverflowError异常2.4 虚拟机栈过多会引发元空间和永久代异常3.本地方法栈3.1 元空间(MetaSpace)与永久代(PermGen)4.java堆5.方法区6.运行时常量池7.直接...原创 2019-04-11 11:33:43 · 162 阅读 · 0 评论 -
我的JVM相关
深入理解java虚拟机之Java内存区域 深入理解java虚拟机之JVM垃圾回收机制 垃圾收集算法原创 2019-09-04 10:47:58 · 114 阅读 · 0 评论 -
Tomcat常见面试题
记录写的好的博客Tomcat 面试题汇总 四张图带你了解Tomcat系统架构--让面试官颤抖的Tomcat回答系列! Tomcat学习总结(14)—— Tomcat常见面试题 我的总结:问:Tomcat有几种部署方式直接把Web项目放在webapps下,Tomcat会自动将其部署 在server.xml文件上配置<Context>节点,设置相关的属性即可...原创 2019-09-03 16:04:22 · 1440 阅读 · 0 评论 -
Redis
主流的应用架构:Redis和Memcache区别,优缺点对比Memcache:代码层次类似Hash支持简单数据类型 不支持数据持久化存储 不支持主从 不支持分片Redis数据类型丰富 支持数据磁盘持久化存储 支持主从 支持分片为什么Redis能这么快Redis的查询速度:100000+QPS(QPS即 query per second,每秒内查询次数)完全基...原创 2019-08-06 21:23:32 · 105 阅读 · 0 评论 -
数据库常见面试题——事务
数据库事务的四大特性(ACID)原子性(Atomic):事务包含的所有操作要么全部成功,要么全部失败回滚;成功必须要完全应用到数据库,失败则不能对数据库产生影响; 一致性(Consistency):事务执行前和执行后必须处于一致性状态, 隔离性(Isolation):当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的操作所干扰,多个并发事务之间要相互隔离; 持久性(...原创 2019-08-06 11:48:37 · 1422 阅读 · 0 评论 -
面向对象的三个特征
面向对象的三个基本特征是:封装、继承、多态。先盗一张图:(来源:https://www.cnblogs.com/autumn001/p/9036148.html)什么是封装所谓封装,就是“装”和“封”把同一类事物的不同属性“装”在一起,形成了一个类。比如我们把name(姓名)、age(年龄)装在一个叫Animal类中,这样原本的三个东西就被“装在了一起”。但是,装在一起的东...原创 2019-07-18 11:07:20 · 149 阅读 · 0 评论 -
java设计模式之代理模式
什么是代理模式代理(Proxy)模式是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。我们想象在一个法庭里:目标类:实现基础的功能。相当于原告,知道大致案件的情况。代理类:实现基于目标类加强和扩展的功能。相当于律师,对原告给出的证据进行加强。业务接口:定义了目标方法。...原创 2019-04-23 16:44:58 · 170 阅读 · 1 评论 -
java实现二叉树的各种遍历
java实现二叉树二叉排序树的创建,二叉树的先序、中序、后序(递归和非递归)、层序遍历package com.lmm.test;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/** * @author lmm E-mail:violet_mmhh@163.com * @...原创 2019-04-10 17:20:12 · 194 阅读 · 0 评论 -
LeedCode刷题系列0005——最长回文字串
问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。测试用例:示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"官网给出了复杂度为n的解答,点击这里使用动态规划的方法,复杂度为n²,代码如下:package com.lmm.Le...原创 2018-10-23 17:32:41 · 173 阅读 · 0 评论 -
LeedCode刷题系列0004——两个排序数组的中位数
问题:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。测试用例:示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 =...原创 2018-10-23 11:08:03 · 147 阅读 · 0 评论 -
LeedCode刷题系列0003——无重复字符的最长字串
问题:给定一个字符串,找出不含有重复字符的最长子串的长度。问题示例:输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "wke",其长度为 3。 请注意,答案必须是一个子串,"pwke" 是一个子序列 而不是子串。解决方案:题目的问题是求无重复的最长字串的长度,也就是求最大的下标范围[i,j]。初始的i=0,j=0。我们的目标就是尽可能扩大j...原创 2018-10-22 21:22:49 · 181 阅读 · 0 评论 -
LeedCode刷题系列0002——两数相加
问题:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。 问题示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解决方案:这...原创 2018-09-28 10:46:35 · 199 阅读 · 0 评论 -
如何在java中写sql语句
我们知道在java连接数据库之后,需要数据库的sql语句,但是在转化的过程中可能会出现各种各样的问题那么java的字符串到底是怎样转化为SQL语句的呢如图所示...原创 2018-04-27 20:32:10 · 17922 阅读 · 0 评论 -
java连接MySQL数据库
我们时常会遇到java需要连接数据库的情况,连接数据库大部分都需要如下3个步骤注册数据库驱动!建立数据库连接的URL,URL指向要访问的数据库名获取Connection对象,连接数据库!对于java连接MySQL数据库来说,需要一个java连接MySQL的jar包,以及MySQL数据库import java.sql.Connection;import java.sql.DriverManager...原创 2018-04-27 20:08:08 · 310 阅读 · 0 评论 -
Java画函数
功能简述如上面的界面,这个程序几乎可以画出任何函数图像使用者应该先从左上角选择要画的函数类型,然后再在右上角输入该函数的相关参数,点击绘制按钮后即可画出函数图像相关说明:1. 本函数只列举几个基本数学函数图像的实现,可以添加。2. 拖动放大界面仍然可以显示界面和图像。3. 可以通过设置UnitLength的值(并没有显示在界面中),设置单位长度所含的像素值,达到函数更...原创 2018-04-27 19:32:08 · 7572 阅读 · 1 评论