- 博客(63)
- 收藏
- 关注
原创 Linux学习-shell(二)
1、什么是shell?shell是位于操作系统最外一层,为用户使用操作系统提供界面的软件,也即是命令解释器(用户命令解释为内核识别的机器语言)。shell分为图形界面shell(GUI shell 如Windows 图形界面 win explorer)和命令行shell(CLI shell),不过一般我们说的shell是指CLI shell。shell(CLI shell)一般分为 Bourne...
2018-11-09 15:20:23 316
原创 Linux学习-常用文件目录操作命令(一)
1、Linux特点Linux是Unix的衍生版本,Mac os则是Unix 基础上的另一种操作系统。Linux版本主要分为内核版本和发行版本,内核版本主要是操作系统内核,一般我们无法直接使用,而是使用社区或厂商在linux内核基础上研发的发行版本,比如redhat、centos、ubuntu等。与windows区别:1、Linux严格区分大小写2、Linux一切皆文件,无论软件程序还是硬件...
2018-11-06 22:01:36 477
原创 前端写项目经验
1、最近在写一个项目遇到一些问题,记录一下,首先是在做动态增加表格tr,忽然发现设置的日期input不能使用,这个需要一段js代码初始化datetimepicker,如这段 $('.form_datetime').datetimepicker({ minView: "month", //选择日期后,不会再跳转去选择时分秒 language: 'zh-CN'
2018-09-11 21:07:53 15595
原创 面试之排序算法(持续更新)
本文根据个人需要,相对排序算法进行学习。 且主要分为两部分: 常用排序算法实现(快速、二分查找) 多种算法比较 ———————————————————————————————————— 1、快速排序 主要思想:选取一个关键数据(隔板),依次遍历数据,如果数据比隔板大,则放到隔板后面,如果比隔板小,则放到隔板前面。这样一趟排序就可以把隔板元素的最终位置确定下来,然后依次递归确定其他元素位...
2018-08-15 20:35:59 488
原创 面试小知识点
1、ArrayList与LinkedList相同点与区别 继承接口:都继承并实现了接口List与cloneable接口等,且是浅克隆,并且LinkedList继承和实现了deque接口可以被当做栈或者队列使用。 底层实现结构: ArrayList:Object数组 默认是10,不够用的时候大约是扩容1.5倍 LinkedList:双向链表实现 性能特点:结构也决定性能 Arr...
2018-08-13 17:54:09 165
原创 设计模式之装饰者模式
装饰器模式:允许向现有的一个类增加(增强)其新功能,但是却不改变其结构,比继承会更灵活! 解决的问题:有时候为了扩展一个类,用继承会产生子类膨胀的问题。 关键代码:Component类充当抽象类(可以是接口);装饰类引用和继承Component类;集体扩展类重写父类方法; 可以增强或扩展原有的方法,如果在装饰类中添加方法,则后面只能强转成具体实现类,才能调用,因为装饰器定义字段类型为Comp...
2018-07-19 12:08:38 235
原创 设计模式之工厂模式(二)
由于这个只是用来做笔记,查了一些网上的资料,发现大致意思明白,但好多并没有说的十分清晰,自己这里也是自己的理解,不一定对,仅供自己看看! 都是把创建对象的过程封装起来! 主要有三种:简单工厂、工厂方法、抽象工厂; 简单工厂:就是独立出去一个工厂类来封装对象的创建,里面直接生产出产品(可以是同一个产品的不同系列:车:运动型,普通型等)(实例对象) 工厂方法:主要针对一个产品;定义一个抽象的类...
2018-07-12 11:47:11 193
原创 Java中的集合类
参考:参考文章 最近有时间,所以想系统的学习下java中的集合,所以参考了一些文章,这里暂时引用一下总体框架图: 这个图是总体的框架图,主要是两个接口Collection和Map都继承接口Iterator(Iterable),为了实现可以使用迭代器。Collection和Map类似平级关系。 1、这里我先学习下ArrayList和LinkedList: ArrayList先从源码的...
2018-07-02 17:38:54 1336
原创 JVM之线程安全与锁优化(十三)
      在软件业发展初期,程序编写都是以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维的方式直接站在计算机的角度去抽象问题和结局问题,称为面向过程的编程思想。 &
2018-06-18 23:28:54 185
原创 JVM之Java内存模型与线程(十二)
硬件的效率与一致性 在执行并发多任务的时候,由于处理器至少要与内存交互,而他们间速度相差几个数量级,因此计算机增加了一层高速缓存作为缓冲,解决了速度矛盾。但是却对多处理器系统带来一个新的问题:由于每一个处理器都有自己的高速缓存,并且他们共享一块主存。当多个处理器的运算任务都涉及到同一块主内存时,可能导致各自的缓存数据不一致。如果发生这种情况,同步回到主存时,到底以谁的数据为准那?为了解决一致性问...
2018-06-17 18:36:19 271
原创 JVM之晚期(运行期)优化(十一)
部分商用虚拟机最初是通过解释器进行解释执行,当虚拟机发现某个方法或某段代码运行比较频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时虚拟就会启用编译器把字节码编译为本地代码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器。...
2018-06-13 22:17:43 220
原创 JVM之早期(编译期)优化(十)
      java语言的编译期是一段不确定的过程,因为它可能是指一个前端编译器(sun的javac、eclipse JDT中的ECJ),把.java文件转为..class文件;也可能是指虚拟机的后端运行期编译器(JIT:C1、C2)把字节吗转变为机器码的过程;还有可能指使用静态提前编译器(AOT:GCJ)
2018-06-06 17:10:31 527 5
转载 自定义类加载器
转:https://blog.csdn.net/seu_calvin/article/details/52315125 先介绍自定义类加载器的应用场景:(1)加密:Java代码可以轻易的被反编译,如果你需要把自己的代码进行加密以防止反编译,可以先将编译后的代码用某种加密算法加密,类加密后就不能再用Java的ClassLoader去加载类了,这时就需要自定义ClassLoader在加载类的时候...
2018-06-04 22:44:44 1326
原创 JVM之类加载及执行子系统的案例与实战(九)
在Class文件格式与执行引擎这部分中,用户能直接影响的内容并不多。能通过程序进行操作的,主要是字节码生成和类加载器这两部分功能,但仅仅在如何处理这两点上,就已经出现了许多值得欣赏和借鉴的思路,这些思路后来成为了许多常用的功能和程序实现的基础。 关于类加载器和字节码案例: 一、正统的类加载器架构 主流的java Web服务器如tomcat、Jetty、WebLogic、WebSphere等,...
2018-06-04 11:31:40 479
原创 java中char到底占几个字节的问题
前些天被问到一个问题:java中一个char可以表示一个汉字吗? 我一想char不是占一个字节吗?汉字在utf-8中占三个字节(还有四字节的),char不能够表示!对方一笑,让我后面查查 所以网上搜了一些资料查查,并做一个例子:public class BytesOfChar { public static byte[] getBytesUTF8 (char c ) { ...
2018-06-03 11:01:38 23058 2
原创 静态代理与动态代理
某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 有时候我们需要一些代理类来完成一些操作或访问控制,这个时候就需要产生相应的代理类,而产生代理类大致分为两种: **》静态代理:由程序员编写或工具自动生成代理类源码,编译成...
2018-06-01 16:34:53 249
原创 Java实例对象的Clone以及equals方法重写
实例对象的clone对于八种基本数据类型clone则比较简单:int m=10;int n=m;这样就可以实现基本数据类型的clone,但是实例对象就不可以,因为上述操作对象,只是两个变量都指向同一个对象,因此通过任何一个变量来修改对象,另一方都会察觉。 而有时候需要对一个实例对象进行Clone,用来保存其状态,那么就需要专门的操作来实现对象的Clone,这样Clone以后,对...
2018-06-01 10:30:06 2497
原创 JVM之虚拟机字节码执行引擎(八)
虚拟机的执行引擎是自己实现的,有自己的指令集和执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。(物理机执行引擎是建立在处理器、硬件、指令集和操作系统层面)。 但在不同的虚拟机实现里,执行引擎在执行java代码的时候,可能会解释执行和编译执行,也可两者兼备,但外观看起来都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。运行时栈帧结构&nbs...
2018-05-24 22:26:51 307
原创 JVM之类加载机制(七)
前言:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校检、转换解析和初始化,最终形成可以直接被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。      &a
2018-05-20 16:35:23 248
原创 JVM之类文件结构(六)
    各种不同的平台虚拟机与所有平台都统一使用的程序存储格式–字节码是构成平台无关性的基石。  &
2018-05-13 10:21:16 185
原创 Cookie与session
HTTP无状态协议 说这两种技术之前,就不得不说HTTP的无状态协议:指协议对事务没有记忆功能,即每次用户请求/响应,该协议不能区分是上次请求的用户,还是新用户,即每次用户请求服务器都响应,但对用户请求没有记录。这种协议并不能满足交互式程序的需要,于是就诞生两种技术来实现保持HTTP状态,即可以识别是不是同一个用户。 Session Session是在服务器端保存用户状态的一种技术,它的生命...
2018-05-08 20:55:02 179
原创 Java之基础算法(找出其中任意一个重复数字、去除链表重复元素、去除链表所有重复元素)
1、在长度为n的数组中,数组值为范围0-n-1范围内的整数,请找出其中任意一个重复的数字。 取值范围0-n-1 找出其中一个就可以 算法思想:从第一个开始,把数组值放在对应的下标值数组中,比如下标为0的值为5,那么就把5放在下标为0的数组中,这样如果有两个相同的数值就会放在同一个下标下,这样每一个元素最多移动两次就可以找到正确的位置。 public static int dupl...
2018-05-05 17:29:41 571
原创 设计模式之单例模式(一)
单例模式:一个类仅由一个实例,并且提供它的一个全局访问点。 用途:对于一些情况存在多个实例就会可能造成混乱,比如 线程池、打印机、对话框等对象。 要点有三个: 第一个点:一个类只有一个实例 第二个点:它必须自行创建这个实例 第三个点:它必须向整个系统提供实例 具体来说是: 只提供一个该类的私有的构造函数 定义一个该类的私有静态对象 提供一个静态的公有函数来获得该实例对象 单例模...
2018-05-03 16:58:49 136
原创 JVM之垃圾收集器与内存分配策略(三)
对于回收主要思考问题: 那些内存需要回收? 什么时候回收? 如何回收? 来展开 第一个问题:那些内存需要回收? 即在哪些区域回收?在这些区域中那些内存可以回收?(对象是否已死?)回收区域:虚拟机栈、本地方法栈、程序计数器这些都属于线程私有区域,随线程而灭,栈中的栈帧在类结构确定下来时就基本已经确定,因此有条不紊的进行出栈和入栈操作,方法结束或线程结束内存就自然回收了。因此关...
2018-05-02 22:02:43 118
原创 JVM之Java内存区域与内存溢出异常(二)
对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们拥有每一个对象的“所有权”,又担负着对象整个生命周期的维护责任,即维护对象从创建到结束的内存管理; 而对于Java程序员来说,有虚拟机自动内存管理机制帮助,不需要为每一个new 操作去写delete/free代码(释放内存),不容易出现内存泄漏和内存溢出问题(虚拟...
2018-05-02 16:58:19 162
原创 SQL语句学习
1、Select语句定义:<SELECT clause> [<FROM clause>] [<WHERE clause>][<GROUP BY clause>] [<HAVING clause>][<ORDER By clause>][<LIMIT clause>]2、SQL语句执行顺序: 1&
2018-04-13 09:06:14 170
原创 JVM之走进Java(一)
1、Java特点 不仅是一门编程语言,还是有一系列计算机软件和规范形成的技术体系;除了是一门结构严谨、面向对象的编程语言之外: (1)、跨平台:一次编写,到处运行,主要是java采用中间体(字节码),而非是依赖平台的机器码,并且是在运行时编译; (2)、相对安全的内存管理和访问机制,避免了绝大多数内存泄漏和指针越界问题; (3)、实现了热点代码检测和运行时编译优化,可以使Java随着运行时...
2018-04-09 16:41:03 215
原创 String、StringBuffer、StringBuilder理解
1、 String 字符串常量; StringBuffer 字符串变量; StringBuilder 字符串变量; 这里一个最大的区别是,String是常量即一个不可变的对象,则一旦赋值,后面再改变的话,就需要重新创建一个字符串对象并指向对象。 而其他两个都是有一个缓冲区(默认长度16),即是可以一定范围改变,而不需要重新申请空间创建对象,但是如果字符串长度改变超过缓冲区大小,则需要重新...
2018-04-06 22:44:46 168
原创 Java中的泛型
今天来学习一下泛型,为了后面找工作做准备: 泛型的出现真的是非常方便,它增加了通用性,自然也省去了很多重复工作。我主要是用到泛型类,在MVC设计模式下,使用框架开发web工程,经常要和数据库交互,而且是对多张表或几张表在联合操作,同时也想操作的时候框架自动或者稍微手动一下使操作的都是bean对象。而对于数据库常用操作增删改查,这四种操作都是相同的,所以希望能把这四种操作抽象出来,操作各种表(对象...
2018-04-06 22:14:31 132
原创 Java 8与Java 9 新特性
由于要实习和找工作了,所以开始好好准备,一步一步的走,先从第一步,可能会问的问题:Java 8和Java 9 这里主要列出一部分,具体可以参考文章末尾的连接。 Java 8 新特性: 1、引入Lambda表达式 它允许把函数作为参数传进方法中,以前使用匿...
2018-03-19 11:11:09 581
原创 项目中遇到的问题以及解决方案(Java后台)
有经验可以少走点弯路,所以走过的坑要记住,虽然我们不能两次踏入同一条河流,但我们可能多次掉入同一个坑! 1、最近项目做一个关于批量修改或者增加记录的功能,为了方便,就手动写一个saveOrUpdate()函数,你可能会说这个hibernate不是自带吗?我首先说一下项目的情况: 从前台传来的多条记录,是没有主键的,(因为主键自动增长,且前台可以新增或修改多条数据,所以编辑前查询也有没有显示自动增
2018-01-27 17:13:01 32638
原创 Hibernate 映射关系(基于注解)
提示:表与表之间的映射关系通过外键或中间表建立联系:单向外键映射关系:这里主要是指在两个映射表对象类(一对一关系)之间只有一方包含另一方的引用,比如映射对象类A与映射表对象B之间,如果只有A中有一个属性是对B的引用 private B b;那么就称为单向外键关系。双向外键映射关系;这里指双方都包含一方的引用,但如果是没有中间表,那么就要指定主控方与被控方。 上面所说的单向外键关系与映射外键
2017-11-28 23:33:13 466
原创 类对象的持久化与序列化
1、所谓类对象的持久化是指:把内存中的对象存储在某种介质上(除内存外,包括硬盘或者网络存储传输等),当然持久化的完整操作并不只是为了把对象数据以字节码或字节流的形式存储在介质上,它还要包括对持久化的对象读取与验证。2、所谓类对象的序列化是指:把一个类对象转化为字节流或字节码(把一个字节流对象转化为一个类对象过程称为反序列化),同时保存其状态等一些特性。对象序列化需要继承Serializable接口,
2017-11-20 17:25:57 1408
原创 SpringMVC数据绑定四(list、set和map)
一、绑定List 1、数据绑定List(这里的Dog、User、以及UserDog实体类省略,需要查看可以看前面几篇) 使用ajax传递数据组格式list(后台使用list绑定到对象上) 前台jsp页面代码:(注意由于下面使用的Input id会与下面的冲突,所以在前一个成功后,请把前台已经完成部分注解,否则后台会输出null值) <label>复杂类型对象list绑定</label
2017-11-16 16:20:29 1402
原创 SpringMVC数据绑定三(数组)
这里数组主要以Integer和String为例 1、不使用ajax提交的数组(使用name属性) 前端jsp代码: <br> <label>数组</label> <form action="arrayto.do" method="post"> <label>array1</label> <input type="text" id="array1" name="ss
2017-11-14 21:44:06 1144
原创 SpringMVC数据绑定二(自定义数据类型与复杂数据类型对象)
1、自定义数据类型 实体类:public class Dog { private Float weight; private Integer age; private String sex; ......(set get 方法) }HTML页面: <label>Ajax</label> <br> <label>体重:</label><input type="text
2017-10-18 23:15:39 698
原创 SpringMVC数据绑定一(基本数据类型及包装类型)
以下均是在环境配置好的情况下执行 1.基本数据类型及包装类型: 根据文本域的name属性值 jsp表单: <form action="name.do" method="post"> <label>书名:</label><input type="text" id="bookName" name="bookName"> <label>编号:</label><input type=
2017-10-10 17:55:45 902
原创 Spring前序(一)
1、Spring是一个开源的轻量级开发框架 核心部分: 1> Ioc:控制反转,替用户创建类对象。 2>:Aop:面向切面编程,扩展功能不需要修改源代码。 一站式框架:对mvc三层结构中都提供相应的技术。 web层:springMVC S
2017-10-05 16:41:18 213
原创 Bootstrap(一)基础小知识
1、bootstrap引用时,有两种:一种是开发版(就是没有压缩 方便看源码和修改);另一种是压缩版(压缩文件更小 便于项目发布)。 2、bootstrap在使用时调整元素的排列方式 可以外面加div 然后加入像form-inline、input-group;control-label 可以使标签采用父级元素css样式。css样式 .classA .classB{….}表示对布局类classA下的
2017-10-05 15:19:02 415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人