自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fordushao的博客

谦谦公子,温润如玉

  • 博客(75)
  • 收藏
  • 关注

原创 递归----第K个语法符号

题目在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)例子:输入: N = 1, K = 1输出: 0输入: N = 2, K = 1输出: 0输入: N = 2, K = 2输出: 1输入: N = 4, K = 5输出: 1解释:第一行: 0第二行: 01第三行:...

2020-02-09 15:43:35 685

原创 递归----第 N 个泰波那契数

递归----第 N 个泰波那契数题目泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。示例 1:输入:n = 4输出:4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:...

2020-02-08 17:02:52 595

原创 集合总结,NIO总结

ArrayList是基于数组实现的,可以通过下标索引直接查找到指定位置的元素,因此查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。 ArrayList中允许元素为null,在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.syn

2017-12-24 00:53:23 422

原创 集合总结

ArrayList是基于数组实现的,可以通过下标索引直接查找到指定位置的元素,因此查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。 ArrayList中允许元素为null,在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.syn

2017-12-24 00:41:43 231

原创 Mysql存储引擎

MyISAM: 选择密集型的表。MyISAM存储引擎在筛选大量数据时非常迅速,这是它最突出的优点。 插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。 MyISAM 这种存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。 MyISAM也是使用B+tree索引但是和Innod

2017-12-24 00:40:55 263

原创 操作系统总结

进程间通信IPC——Inter-Process Communication 由于内存管理的一些机制,导致两个进程间并不能直接的进行通信(在独立的用户空间),因此我们需要利用一些介质来完成两个进程之间的通信。以下是常用的进程间通信方式。 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 有名管道 (

2017-12-24 00:39:42 299

原创 黑马程序员多线程视频总结

线程池的工作模型主要两部分组成,一部分是运行Runnable的Thread对象,另一部分就是阻塞队列。由线程池创建的Thread对象其内部的run方法会通过阻塞队列的take方法获取一个Runnable对象,然后执行这个Runnable对象的run方法(即,在Thread的run方法中调用Runnable对象的run方法)。当Runnable对象的run方法执行完毕以后,Thread中的run方法又

2017-12-24 00:38:04 924

原创 类加载

双亲委派模型的工作流程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当父加载器在它的搜索范围中没有找到所需的类时,即无法完成该加载,子加载器才会尝试自己去加载该类。 ? ? 使用双亲委派模型来组织类加载器之间的关系,有一个很明显的好处,就是Java类随着它的类加载器

2017-12-24 00:36:54 210

原创 事务

对于事务而言,它需要满足ACID特性,下面就简要的说说事务的ACID特性。A,表示原子性;原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,整个事务的执行才算成功。事务中任何一个sql语句执行失败,那么已经执行成功的sql语句也必须撤销,数据库状态应该退回到执行事务前的状态; C,表示一致性;也就是说一致性指事务将数据库从一种状态转变为另一种一致的状态,在事务开始

2017-12-24 00:35:41 221

原创 InnoDB锁原理

InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁。 Mysql3中锁特性如下: 表级锁:开销小,加锁块;不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发性也最高。 页面锁:开销和加锁界于表锁和行锁之间,会出现死锁;锁定粒度界与表锁和行锁之间,并发一般。InnoDB实现了两种类型的行锁

2017-12-24 00:34:36 501

原创 网络面试总结

TCP/IP协议分为4层,由上至下为应用层、传输层、网络层和网络接口层。 应用层:定义上层应用可以直接使用的高级协议,如http、ftp等。 传输层:定义控制数据传输的协议,用以保证数据的可靠性和顺序到达性等,如tcp、udp协议。 网络层:定义不同网络类型间通信的协议,如IP协议用于实现网际路由,ICMP协议用于检测网络的畅通性,ARP协议用于获取设备MAC地址等。 网络接口层:定义网络介

2017-12-24 00:31:37 335

原创 校招资料总结

学习内容纲要复习提纲Java基础视频黑马程序员毕向东java基础视频 黑马程序员张孝祥多线程视频 黑马程序员网上商城教学视频书籍《深入理解java虚拟机》 《java面试宝典》博客集合源码 集合源码 集合总结,NIO总结 黑马程序员多线程视频总结 多线程-interrupte 多线程-生产者消费者 如何正确地停止一个线程 深入理解java虚拟机 精华总结(面试) 类加载机制

2017-12-24 00:29:41 1082

原创 LeetCode-----把'O'变成'X'

LeetCode—–把’O’变成’X’注:思路和代码是参考牛客上Ron大神的,自己没有写出来。。。 Given a 2D board containing’X’and’O’, capture all regions surrounded by’X’. A region is captured by flipping all’O’s into’X’s in that surrounded regi

2017-08-29 16:40:42 500

原创 LeetCode-----回文串分割

回文串分割Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s. For example, given s =”aab”, Return [ [“aa”,”

2017-08-29 15:17:11 261

原创 LeetCode-----回文串的最小分割

Given a string s, partition s such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of s. For example, given s =”aab”, Return1since

2017-08-29 10:17:51 569

原创 Java foreach和for对不同数据结构的效率

Java foreach和for对不同数据结构的效率需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。 需要循环链表结构的数据时,一定不要使用普通for循环,这种做法很糟糕,数据量大的时候有可能会导致系统崩溃。 对于ArrayList,Vector 其核心是一个数组, 如果明确知道List的实例是ArrayList,Vect

2017-07-24 16:00:13 298

原创 OOM情况与原因

OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError 为什么会OOM? 1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。   2)应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就

2017-07-24 15:57:37 508

原创 Object有哪些基本的方法

Object有哪些基本的方法1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。 2.getClass方法 final方法,获得运行时类型。 3.toString方法 该方法用得比较多,一般子类都有覆盖。 4.finalize方法 该方法用于释放资源。因为无法确定该方法什么时

2017-07-24 15:56:39 261

原创 Java虚拟机的内存空间

Java虚拟机的内存空间Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区。1.2. 程序计数器的作用 程序计数器有两个作用: 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。 在多线程

2017-07-24 15:54:59 393

原创 HashMap深入理解

HashMap深入理解HashMap基于哈希表的 Map 接口的实现。允许使用 null 值和 null 键。不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCode来计算hash值的,只要hashCode相同,计算出来的hash值就

2017-07-24 15:02:43 401

原创 ArrayList深入理解

ArrayList深入理解ArrayList是基于数组实现的,可以通过下标索引直接查找到指定位置的元素,因此查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。 ArrayList中允许元素为null,在查找给定元素索引值等的方法中,源码都将该元素的值分为null和不为null两种情况处理ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Coll

2017-07-24 15:01:23 278

原创 session和cookie理解

session和cookie理解Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 Cookie对象使用key-value属性对的形式保存用户状态,一个Cookie对象保存一个属性对,一个request或者response同时使用多个Cookie 如果不设置 过期时间,则表示这个 Cookie生命周期为 浏览器会话期间 , 只要关闭浏览器,cooki

2017-07-24 14:59:23 238

原创 简单排序之冒泡排序,选择排序,插入排序

简单排序之冒泡排序,选择排序,插入排序1.冒泡排序,运行时间O(N^2)(N^2次比较,N^2次交换)public void sort(){ int in,out; for(out=nElems-1;out<1;out--){ for(in=0;in<out;in++){ if(a[in]>a[i+1]){ sw

2017-06-09 11:09:08 264

原创 写代码后的学习与总结

1.SQL查询语句的执行顺序 2.SQL查询语句的优化。 其中由于where是从左到右执行的。所以要把等于之类的放在最左边。以将结果缩小到最小。然后将不等于。模糊查询之类的放在最右边。这样的效率比较高。 还有就是。减少对left join的使用。不要用。可以想好查询顺序。先查结果比较小或者能够唯一确定的。以后在不断的查别的数据。不断的在JAVA中拼接。这样效率会提高 3.减少对map的使用。

2017-05-24 18:44:15 1679

原创 group by order by 和limit顺序

group by order by 和limit顺序重要啊!!!,否则报错的!!! 先写group by 在写order by 和最后写limit

2017-05-16 14:03:16 8342

原创 sql语句的拼接和写法

sql语句的拼接和写法1.sql语句可以使用StringBuilder来进行拼接 例如:StringBuilder targetWhereSql = new StringBuilder(“”); targetWhereSql.append(” and (cu.name like ‘%”).append(name).append(“%’ or cu.email like ‘

2017-05-16 13:44:49 1509

原创 SQL语句实现查询一段时间内的数据中要注意的细节问题

SQL语句实现查询一段时间内的数据中要注意的细节问题细节问题很重要,不注意数据一直对不上例如:timeSql=” and corder.end_time >= ‘”+startTime+” 00:00:00’ and corder.end_time <= ‘”+endTime; 上面这句是错误的,所查的数据没有最后一天的timeSql=” and corder.end_time >= ‘”+sta

2017-05-16 10:35:16 1005

原创 ConcurrentModificationException 异常的解决方法

ConcurrentModificationException 异常的解决方法在高级for循环List中,进行了add操作,会产生ConcurrentModificationException 异常,解决方法就是使用ListIterator代替高级for循环例如: ListIterator it=list.listIterator(); while(it.hasNext()) {

2017-05-16 10:27:05 268

原创 在servlet用getOutputStream输出中文问题

在servlet用getOutputStream输出中文问题//在servlet用getOutputStream输出中文问题public class ResponseDemo1 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse respons

2017-02-23 23:07:38 2956

原创 web中的普通Java程序如何读取资源文件

web中的普通Java程序如何读取资源文件在Servlet中: //servlet调用其它程序,在其它程序中如何去读取配置文件 //通过类装载器 public class ServletDemo12 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse respo

2017-02-22 21:41:11 727

原创 ServletContext——被称为context域对象

ServletContext——被称为context域对象1.servletContext域:1,是一个容器 2。作用范围是应用程序范围 服务器启动时,他会为每个WEB应用程序创建一个ServletContext对象,它代表当前web应用。停掉服务器时,ServletContext也就没了。一个web应用中所有Servlet对象共享一个ServletContext,所以多个Servlet通过Ser

2017-02-22 17:08:56 1332

原创 ServletConfig对象

ServletConfig对象ServletConfig对象 实际开发中,有一些数据不适合在程序中写死,,就可以这样配,如使用什么码表,使用什么数据库,数据库名,密码等等 在web.xml中配置这个,服务器会自动把数据封装到ServletConfig对象中,并在Servlet对象调用init方法时,将ServletConfig传递给Servlet对象,我们可以通过ServletConfig得到S

2017-02-22 16:33:32 445

原创 Servlet的生命周期

Servlet的生命周期1.Servlet的生命周期——面试题 Servlet在用户第一次访问时创建,创建后驻留在内存中。。。。。。。。初始化调用init方法,客户端的每一次请求时,调用service方法。然后在web服务器停止时,servlet对象被销毁 注意: Servlet在服务器退出时(Tomcat停止),Servlet实例对象才被销毁 整个声明周期中,Servlet的init方法只

2017-02-22 16:31:52 334

原创 Java中的字符流缓冲区介绍

Java中的字符流缓冲区介绍字符流缓冲区 缓冲区是为了提高流的操作效率二出现的 所有创建缓冲区前,必须先有流对象FileWriter fw=new FileWriter(“111.txt”); BufferedWriter bufw=new BufferedWriter(fw);//将要被提高效率的流对象作为参数传递给BufferedWriter即可 bufw.writer(“dafdsa”

2017-02-22 14:20:02 750

原创 Java中的字符流缓冲区介绍

Java中的字符流缓冲区介绍字符流缓冲区 缓冲区是为了提高流的操作效率二出现的 所有创建缓冲区前,必须先有流对象FileWriter fw=new FileWriter(“111.txt”); BufferedWriter bufw=new BufferedWriter(fw);//将要被提高效率的流对象作为参数传递给BufferedWriter即可 bufw.writer(“dafdsa”

2017-02-22 14:18:56 463

原创 用Java实现拷贝文本文件

拷贝文本文件 例:将c盘下的文件复制到D盘 复制原理:将C盘下文件数据存储到D盘的文件中 步骤: 1。D中创建一个文件, 2.第一读取流和C盘文件关联 3.通过不断的读写完成数据存储 4.关闭资源 方式一:效率低 FileWriter fw=new FileWriter(“111.txt”);//创建目的地 FileReader fr=new FileReader(“Demo.j

2017-02-22 14:11:57 887

原创 Java中文本文件读取的两种方法

Java中文本文件读取的两种方法文本文件读取 FileReader fr=new FileReader(“demo.txt”);//创建一个文件读取流对象,和指定名称的文件相关联,如果 文件不存在,发生异常 int ch=fr.read();一次读一个字符并依次往下度,读到最后没有了返回-1 fr.close(); 方式一: main{ FileReader fw=new Fil

2017-02-22 14:07:43 1165

原创 Java中IO异常处理方式

Java中IO异常处理方式IO异常处理方式 以下是一个标准的io异常处理方式 main(){ FileWriter fw=null; try{ fw=new FileWriter(“demo.txt”); fw.writer(“abcde”); }catch(Excetion e){ System.out.println(e.toString()); }fi

2017-02-22 14:06:17 3157 1

原创 Java中StringBuffer的用法介绍

Java中StringBuffer的用法介绍StringBuffer(面盆理论) 是字符串缓冲区,是一个容器, 三个特点: 长度可变,可以操作多个数据类型,最终可以通过toString方法变成字符串 1.存储 StringBuffer append();//将指定数据添加到已有数据结尾处 StringBuffer insert(index,数据);//将指定数据添加到指定

2017-02-22 14:04:15 609

原创 Java中的string介绍和字符串常见操作

Java中的string介绍和字符串常见操作String 1.字符串最大特点:一旦被初始化就不可以被改变 String类复写了Object类中的equals方法,用于判断字符串是否相同,不在判断地址是否同了!!!例题——面试提 String s1=”abc”;///”abc”是常量 String s2=new String(“abc”) 问s1 s2有什么区别? 答:s1代表一个对象,

2017-02-22 14:01:07 419

空空如也

空空如也

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

TA关注的人

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