- 博客(31)
- 收藏
- 关注
原创 5、反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
2022-03-23 21:55:05 739
原创 4、移动ZERO
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]解题思路:很容易想到,把非零的数依次向前移动,最后剩下的就是‘0’了。算法提炼:反向思考class Solution { //将不是0的移动到前面 后面就是0的
2022-03-10 23:25:16 206
原创 3、旋转数组
题目描述:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右轮转 1 步..
2022-02-28 21:58:02 125
原创 1、删除排序数组中的重复项
给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2,_]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。示例 2:输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]...
2022-02-26 21:41:04 493 1
原创 最近学习了一些新东西,今天说一下前端Vue的使用,先讲解一下安装--Vue.js的安装
Vue的使用有两种方式,一种是直接引用vue的.js文件。这里不详细描述,源码附上:<html> <head> <title>VueJs HelloWorld</title> <script type = "text/javascript" src = "https://unpkg.com/vues">...
2019-03-28 15:06:40 257
原创 Redis 的持久化
Redis强大的功能很大部分是由于他吧数据缓冲在内存中,为了使redis在重启的时候,数据不丢失,就需要以某种方式吧数据持久化到磁盘中。redis持久化的方式有2种,RDB和AOF。 RDB:快照方式,允许你每隔一段时间对内存数据做一次快照然后存储到硬盘中。该方式是redis默认的持久化方式。RDB可以通过在配置文件中配置时间或者设置改动键的个数来定义快照条件,编辑相应的配置文件red...
2019-02-21 20:31:01 465 3
原创 TCP的三次握手和4次挥手的过程详解
TCP协议的三次握手和四次挥手过程?所谓三次握手,是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小信息,在socket编程中,客户端执行connect()时。将触发三次握手。第一次握手:客户端发送一个TCP的SYN标志位置1的包指明客户端打算连接的服务器的端口,以及初始...
2019-02-13 21:33:57 321
原创 java代理模式讲解
静态代理模式:简单的接受传入要被代理的对象,进行权限的设置,和是否允许被访问。一般的做法是,实现和被代理类相同的方法,在方法中进行权限控制,判断是否有权限可以访问被代理类。举例:public interface SJSkill {public void 吃();public void 唱歌();}public class FBB implements SJSkil...
2019-01-25 16:47:09 174 3
原创 Spring注解实现IOC(DI)
1.注解所谓注解就是给程序看的提示信息,很多时候都用来作为轻量级配置的方式,注解本身不起什么作用,起作用的是在加载class文件时根据注解实现相应的功能。2.Spring中的注解:Spring除了默认的使用xml配置文件的方式实现配置之外,也支持使用注解方式实现配置,这种方式效率更高,配置信息清晰,修改更方便,推荐使用。使用类注解:所谓类注解,指的是spring中在类上加上注解...
2019-01-25 16:39:57 289
原创 Spring DI 属性注入
将IOC创建的对象,交于Spring管理,在创建对象的过程中Spring可以依据配置对对象的属性进行设置,这个过程称之为依赖注入,也即DI。set方法注入:通常的javabean属性都会私有化。而对外暴露setXxx()getXxx()方法,此时spring可以通过这样的setXxx()方法将属性进行注入对象。a.Spring内置的可直接注入类型的注入:以每个类型的注入方式举例:...
2019-01-24 20:54:00 521
原创 SpringIOC参数详解及其使用
重点:IOC实现原理:在初始化一个Spring容器时,Spring会去解析指定的xml文件,当解析到其中的<bean>标签时,会根据该标签中的class属性指定的累的全路径名,通过反射创建该类的对象,并将该对象存入内置的Map中管理。其中键就是该标签的id值,值就是该对象。 由此可得:多次获取同样一个id的bean,得到的是同一个对象。即使是同一个类,如果配置过多个...
2019-01-24 11:54:36 222
原创 java线程池的理解,创建
线程池表示一组正在等待作业并重复使用多次的工作线程组。在线程池的情况下,创建一组固定大小的线程。来自线程池中的线程被拉出并由服务提供者分配作业。完成作业后,线程再次包含在线程池中。Java线程池的优点:线程的创建和销毁是特别浪费性能的过程,如果可以重用相同功能的线程,则会节省很多性能。提供了更好的性能,因为不需要重新创建新线程,所以节省了时间。核心工作工作进程存放:...
2019-01-24 09:34:20 185 1
原创 Sql语句的基本查询用法,两表联查,3表联查
查询表中所有学生的信息:Select * from exam;查询表中所有学生的姓名和对应的英语成绩:Select name,englich from exam;过滤表中的重复数据:Select distinct english from exam;在所有学生分数上加10分特长分显示Select name,english+10 from exam统计每个学生的总分...
2019-01-24 09:27:45 36453 3
原创 FreeMarker入门案例,及其概念
Freemarker是java的免费模板引擎,主要用于MVC中的view层,生成html展示数据给客户端,可以完全代替jsp。FreeMarker是一个模板引擎,一个机遇模板生成文本输出的通用工具,使用纯Java编写,模板中没有业务逻辑,外部java程序通过数据库操作等生成数据传入template中,然后输出页面。它能够生成各种文本:Html,XML,RTF源代码等,而且不需要Servlet环境,...
2019-01-24 09:18:05 212
原创 java多线程的并发理解
1.多线程并发的安全问题: 多线程环境下,多个线程是并发执行的,并且是抢占式执行,线程的执行顺序不确定,此时如果多个线程同时区操作共享资源,就可能出现数据的先后错乱:入银行的多次并发取钱问题,可能导致钱数为负;举例卖票问题:public class ThreadConrrent {public static int tickets = 10;public static v...
2019-01-18 19:02:03 372
原创 java多线程基础理解
多线程概述:java中的多线程是一个同时执行多个线程的进程。线程是一个轻量级的子进程,是基本的执行单元。多线程和多进程都用于实现多任务处理。 多线程使用进行的共享内存区域。它们不分配单独的内存区域以节省内存,并且线程之间的上下文切换比进程花费的时间更少。进程:进程是一个程序的动态体现,是操作系统资源分配的最小单位线程:线程是存在于线程中的并行的任务,是任务调度的最小单位 ...
2019-01-18 18:53:34 211 1
原创 集合Set讲解
一个不包含重复元素的collection。更确切的讲,set不包含满足e1.equals(e2)的元素,并且最多包含一个null元素。此接口基本上与Collection方法一致。Set的应用场景:去重的最多HashSet:底层基于HashMap-> 基于了数组+链表结构。默认初始容量是16,默认加载因子是0.75f,默认增加一倍。--- 不保证元素的存储顺序构造方法部分源...
2019-01-18 18:47:47 159
转载 单例设计模式的五种方式
单例模式(五种方式)单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。饿汉式,线程安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这...
2019-01-17 15:26:20 163
原创 Collection集合概述,List
集合 -- Collection<E>集合的父接口--用于定义存储多种数据类型的集合。集合中存储何种数据使用泛型进行限定。主要定义的方法: boolean add(E e) 添加数据到集合中 boolean addAll(Collection<? extend...
2019-01-17 10:23:38 1947 1
原创 Java主要API概述,Object,String,日期
Objectjava中的顶级父类。任何一个类都将Object作为父类,也就意味着任何一个对象都可以赋值给Object对象。Object类也是Java中唯一的一个没有父类的类。 方法介绍:Clone() --- 如果一个对象要想被克隆,那么这个对象所对应的 类必须实现接口 ---Cloneable --- 这个接口中没有任何的方法和属性仅仅起标志性的作用Finalize() ...
2019-01-17 10:02:42 221
原创 java Concurrent包--HashMap和ConcurrentHashMap的区别
阻塞式队列--BlockingQueue遵循先进先出的原则。阻塞式队列本身使用的时候是需要指定界限。(容量)1.ArrayBlockingQueue -- 阻塞式顺序队列-->底层基于数组存储。主要方法:添加方法:Add:如果队列已满,则抛出异常--》IllegalStateExceptionoffer:返回元素是否添加到队列中,如果队列已满,则返回falsepu...
2019-01-14 21:50:29 291
原创 String、StringBuilder、StringBuffer区别
最终类。代表字符串的类,所有的字符串都是String的对象。字符串是一个常量,定义好之后不可改变。因为字符串是一个常量,所以它是被共享的 --- 只要值相同,用的都是同一个字符串字符串本质上是一个不可变的字符数组String str=“abc”->str=“def”的=内存变换String str=“abc”和String str=new String("abc")的...
2019-01-09 20:45:01 135 1
原创 抽象类、接口、内部类
抽象类一个类不可被实例化,而其中有抽象方法和非抽象方法的类.(使用abstract关键字修饰) 抽象类特点:抽象类中不一定有抽象方法. 抽象类不能创建对象 抽象类一定不是最终类(不能用final修饰)注:任何一个java类都有抽象方法 接口--interfaceJDK1.8以前接口中定义的都是抽象方法.接口的特点:接口不能被实例化接口是多实现,接口之间支...
2019-01-09 20:35:55 142 2
原创 java Static的理解
修饰符 - 用于修饰数据、方法、代码块以及内部类静态变量用static修饰变量,称之为静态变量,也叫类变量。在类加载时加载到了方法区,并且在方法区中被赋予了默认值。静态变量时先于对象出现,所以习惯上市通过类名来调用静态变量。每一个对象存储的是这个静态变量在方法区中的地址,所以静态变量时被这个类的所有对象所共享的。静态变量能否定义到构造方法中?---不能。静态变量是在类加载的时候出现...
2019-01-09 20:34:32 135
原创 java 面向对象概述
面向对象是一种思维方式,相当于面向过程而言。面向对象的编程模式不注重具体的实现过程,而注重实现结果。类与对象的关系根据一类对象进行抽取和总结,将这类对象的特征抽取成属性,将这类对象的行为抽取为方法,用类表示着一类的对象。成员变量和局部变量定义位置:成员变量定义在类内方法外;局部变量定义在代码块中。 作用范围:成员变量作用于整个类内;局部变量时只能作用在定义它的代码块中。 内...
2019-01-09 20:32:38 248
原创 java概述--关键字--数据类型
java是由Sun公司在1995年推出的一门高级编程语言,是目前服务器首选编程语言. Java语言的优势:java的平台无关性,(依据JVM)简单是基于面向对象的编程语言多线程多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。安全性Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大...
2018-12-20 19:42:36 196
原创 Spring IOC的入门新手理解
Spring 是java流行的web开发框架,主要用来进行web的层与层之间的解耦。Spring IOC(控制翻转)和AOP(面向切面编程)是两大核心要点:Spring本身是基于xml配置来工作的,但随着项目的扩大,难免要编写大量的xml配置。在此条件下利用注解的形式进行配置更加流行。Spring IOC :将对象给Spring容器进行创建,从而减少层与层之间的耦合,利于以后软件维护。...
2018-10-16 19:43:28 146
原创 科学计算器的实现(java语言)
实现科学计算器:就要想它的算法,这里应用的是经典的后缀表达式的应用。后缀表达式:一种不需要括号的后缀表达法,如:1+2*3*(1+2)+(3-2)*(5/2) 为中缀表达法;它所对应的后缀表达式为:123*12+*+32-52/*+ 中缀表达式转后缀表达式:可以用栈进行入算术符进行转换,然后进行优先级的判断,进行出入栈的操作;后缀表达式计算结果:遍历后缀表达...
2018-09-13 17:08:21 14702 6
原创 Sqrt()实现
迭代公式X(n+1)=(Xn+a/Xn)/2,算出X2,再将X2代公式的右边算出X3等等,直到连续两次算出的Xn和X(n+1)的差的绝对值小于某个值,即认为找到了精确的平方实现代码:public static double sqrt(double c){if(c<0)return Double.NaN;double e=1.e-15;//10的-15次方,用来限制位数,javad...
2018-04-13 22:52:03 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人