A Java developer.
用的不多,但用的时候仅仅简单的使用,不太明白原理,今天就系统的学一下枚举。参考:java编程思想。 Update: 枚举可以当做数据字典来存储,通常只要一个字段即instance本身,toString()或者name()打印的string。
面试碰到几次list的去重和排序。下面介绍一种做法: 1. list去重 1.1 实体类Student List容量10k以上,要求去重复。这里Student的重复标准是属性相同,因此需要重写equals和hashcode方法,不知道有几个可以手写出来。
学习慕课网笔记,课程:http://www.imooc.com/code/2024 1.css选择器 子选择器:parent>child 子选择器是指选择parent的范围内的第一个子元素。
安装完成git之后基本就可以使用了,但是,有些配置还是需要的。 在任何一个目录下,右键 Git Bash Here, 然后输入: 1.设置用户名和邮箱 $ git config --global user.name "用户名"$ git config --global user.email "emial" 2.生成ssh key $ ssh-keygen -t rsa -C "email" 3个enter。
面试问道这个我居然不知道怎么回答,当然也是因为我确实没有研究过。下面就是百度了一篇文章后简单回答这个问题。 参考:http://www.cnblogs.com/sharpxiajun/p/3395607.html http://lavasoft.blog.51cto.com/62575/275589/ sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。
今天面试碰到一个特别恶心的公司面试官。是一个金融公司,过去后告诉我2点上班,带我去见经理。经理找人面试,看起来没有hr,经理直接看简历招人。经理上来就问我是xxx大学的,我说是,然后等面试官。面试官来了拿走简历,回去(估计在想什么理由让我走),我莫名其妙的又等了几分钟。
参考:http://www.cnblogs.com/duanjie/archive/2011/08/13/2136862.html 说到去重复,感觉逻辑很简单。但动手写起来却并不是那么容易。面试的时候让写sql语句,然后没完整的写出来,然后面试官说你这没结果啊! 去重复首先要把要留下的选出来,然后删除其他重复项。
为了知道某人安装git,我也是重装啊。 1.下载git并安装 2.打开我的电脑,右键属性,选择高级设置,打开环境变量设置: 3.键盘输入窗口键+r,或者点击开始->运行 输入cmd 在新打开的命令行中输入:git --version 如果出现版本号码就是安装成功了。
java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? String和int参数传递是按值传递还是引用传递? 一道面试题目,String的传递: public String change(String s){ s = "222"; return s; ...
转载:http://blog.csdn.net/u012771929/article/details/30030249 目录: 1.setting 安装插件,package control ,Emmet使用 2.快捷操作 选择,编辑,搜索,显示 1.settings preferences>>settings default存储的默认格式信息; preferences>>settings user可以自己配置信息,格式为json 1.1安装插件 从官网下的版本是没有插件的,需要自己安装。
github网络连接稍微有些慢,这里使用coding做测试: 首先要分两种情况,一种是直接clone远程库,一种是将本地的代码push到远程库。先说clone到本地 1.clone 通常是我们clone一个远程库的分支下来,并初始化本地仓库,而且将远程库命名为origin。
新建立了一个远程仓库,想着把项目放上去。于是在项目目录上: git init 然后就添加远程库 git remote add origin xxxx.git 然后就想push: git push -u origin master 结果提示错误: error:src refspec master does not match any 百度下,原来是说我本地没有提交任何东西,本地版本库为空, 空目录不能提交 (只进行了init, 没有add和commit)。
转自:java并发编程实战 5.3阻塞队列和生产者-消费者模式 BlockingQueue阻塞队列提供可阻塞的put和take方法,以及支持定时的offer和poll方法。如果队列已经满了,那么put方法将阻塞直到空间可用;如果队列为空,那么take方法将阻塞直到有元素可用。
转载:http://www.cnblogs.com/dolphin0520/p/3932921.html 一. java中的ThreadPoolExecutor类 java.util.concurrent.ThreadPoolExecutor类时线程池中最核心的一个类,因此如果要透彻的了解java中线程池,必须先了解这个类。
有些基础题目由于工作中用的比较少但却又是不可少的,这样回答起来就会反应慢,不确定,不准确,特此开了文章记录遇到的不确定或者回答比较拗口的问题。 1.servlet是单例的吗,是安全的吗,是多线程吗 servlet是单例的,根据web.xml实例化一次后,其他访问通过多线程的方式调用servlet实例。
原文:http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。
先验条件(Precondition):某些方法包含基于状态的先验条件。例如,不能从空队列中移除一个元素,在删除元素前队列必须处于非空状态。基于状态的先验条件的操作成为依赖状态操作。 在单线程中,如果某操作无法满足先验条件,就只能失败,但在并发程序中先验条件可能会由于其他线程执行的操作而变成真。
方向 内容 后端 java基础(掌握多线程并发concurrent,java内存模型(java memory model,jmm),volatile,ThreadLocal,ConcurrentHashMap,CopyOnWriteArrayList...
1. 一些原则 RIM(Remote Method Invocation):远程方法调用 Race Condition:竞态条件 Servlet要满足多个线程的调用,必须是线程安全的 远程对象,即通过远程方法调用将对象放入字节流中传给其他jvm的对象,要特别注意对象中的共享状态 Shar...
web知识零零散散的知道一些,但总感觉不够系统,遇到问题不知道如何解决,因此特此来系统的学习一下web前端的知识。从慕课网的web基础看起。下面学习http://www.imooc.com/learn/494。
作者:匿名用户链接:https://www.zhihu.com/question/39890405/answer/83676977来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
转载:设计模式(中文-文字版) 目录: 简单目标任务实现 观察者模式介绍 观察者模式代码实现 观察者模式是JDK中使用最多的模式之一,非常有用。我们也会一并介绍一对多关系,以及松耦合(对,没错,我们说耦合)。
转载:http://zz563143188.iteye.com/blog/1847029 工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。
学习:http://www.cnblogs.com/dolphin0520/p/3780005.html#3163302 后发现居然有这么个东西,当然也不会注意什么自动拆箱和装箱,只知道用就行了。不过这里确实值得注意一下,Integer的自动valueOf实现是有范围的: 在通过valueOf方法创建Integer对象的时候,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。
Singleton最熟悉不过了,下面学习单例模式。转载:http://zz563143188.iteye.com/blog/1847029 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。
转载:http://zz563143188.iteye.com/blog/1847029 前面的工厂方法模式虽然清晰,但还是感觉有些繁琐,通常使用的还是抽象工厂模式。 工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
参考:http://lavasoft.blog.51cto.com/62575/99150 http://blog.csdn.net/baby_newstar/article/details/6783752 http://www.runoob.com/java/java-multithreading.html 1.操作系统中的进程和线程 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。
2普通工厂方法模式 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。 2.1创建接口 1 /** 2 * 发送接口 3 * Created by mrf on 2016/2/25.
最初写代码只要功能走通就不管了,然后如果出了什么问题再去修改,这是因为没做测试的工作。测试其实很简单。 1.准备 当前使用idea编写代码,用maven构建工程,使用maven的test功能来进行批量测试。
在我目前看来博客的作用就是笔记了,所谓的原创也仅仅是复制了别人的东西实践了一下,但为了学习记忆确实要记录下来。在这里感谢网络各处的资源,原谅我对资源的索取。 接下来每天开始学以则设计模式或者几天学一则设计模式,目的就是初步认识设计模式,必须坚持下去!还是那样,搬砖学习。
以前查询都是随便查到结果就行了,因为发现每次查询的数量都很少,当然现在也是。不过效率一直是程序员执着的追求,我就多了解下差距。 首先是多张表联合,一张模板种类category,一张模板表template,一张橱窗表shopwin,一张橱窗类型表type 现在要查询一个橱窗类型为1,即shopwin中type=1的模板信息。
https://segmentfault.com/q/1010000000720031 http://www.tuicool.com/articles/a6Nf63F 先有项目,然后分享至github,没有添加gitignore,导致.idea文件同样上传。
主要学习https://github.com/thinkgem/jeesite。一下代码均参考于此并稍作修改。 1.jedis 首先,需要添加jedis: redis.clients jedis 2.8.0 2.applicationContext-jedis.xml 然后,springmvc完成基本配置。
使用好快捷键会快很多,这里我慢慢添加我用习惯的快捷键。参考 1.alt+enter 这个几乎万能,有错误提示的时候将光标移动到错误处,然后alt+enter,会给出建议方案;写完一个表达式后,alt+enter会提示补充变量。
对象在java中是以堆的方式存储。有时候需要复制对象或者存储对象,而不是对象的引用,这时候就需要用的对象的序列化和反序列化。 1.序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。
一些关键的属性一般都会拿出来作为配置,比如数据库连接等。在springmvc中也提供了获取property的类,比如@Value来获取。我接触spring很浅,基本上都是百度的问题解决方法,百度到@value的用法,按照说明尝试了两次都失败了。
学习https://github.com/thinkgem/jeesite 今天在写JedisUtils的时候要注入JedisPool,而这个属性被设置为static,@Resource和@Autowired都不可以注入,因为spring不能为静态变量依赖注入。
在java中使用redis很简单,只需要添加jedist.jar,通过它的api就可以了。而且,api和redis的语法几乎完全相同。以下简单的测试: 参考:http://www.runoob.com/redis/redis-java.
参阅redis中文的 互动教程(interactive tutorial)的学习笔记。 全局操作: #查看所有key keys * 或 keys "*" #查看匹配前缀的keys keys "miao*" #清空redis flushdb#随机取出一个keyrandomkey#查看key的类型type key#查看数据库中key的数量dbsize#查看服务器信息info#查看redis正在做什么monitor #注意,有高手的文章说这个会急剧降低redis性能,只能在测试环境使用。
(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加jackson-mapper-asl 1 2 org.
由于表对象在开发过程中会增删字段,有时候需要重新生成实体和对应的mapper,这时候可以通过mybatis的插件的生成。 优点是快速简洁,缺点同样很明显:覆盖。因此,通常是在第一次搭建框架的时候使用,因为开发过程中实体的字段会被修改,如添加注解validator、format等。
velocity模板其实就是java不分语法的翻译,用到的属性还是java的方法,get,set,等 1.截取部分字段substring 1 原始字符串:$!ag.tagValue,也许很长,前端页面展示时需要截取字符串。
转载:http://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.html 在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1、如果用“.
学习mybatis的过程中,测试mapper自动代理的时候一直出错,在eclipse中可以正常运行,而同样的代码在idea中却无法成功。虽然可以继续调试,但心里总是纠结原因。百度了好久,终于找到一个合适的原因。
如题,烦恼好久,突然看到scope一直是test,改成compile就好了。 compile (编译范围) compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用, 同时它们也会被打包。
编码问题我仍旧没搞懂,最根本的从哪里来就没搞懂。当页面发送请求,编码到后台是什么编码呢?好吧,我默认的都是utf-8.后台接收参数后,可以在控制台打印出来,我也不清楚是什么编码。然后,就是数据库问题。 在mysql数据库,首先会设置mysql安装的字符集为utf-8,然后在连接的jdbc上注明characterEncoding是utf-8.一直这样统一下去,没有出现乱码。
jfinal2.0+tomcat7+ehcache2.6.11+Linux Linux version 2.6.18-164.el5 (mockbuild@x86-002.build.bos.redhat.
子类可以覆盖父类的非final成员变量和重写非final方法 private私有变量和方法只能在类的内部使用,因此子类继承的同时会被隐藏,相当于不继承 protected变量,子类可以继承调用 方法被覆盖,方法中的成员变量来自子类,上转型对象只能调用自己被覆盖的方法,该方法中可以调用子类的属性...
学习编程思想 1 package com.test.java.classs; 2 3 /** 4 * Created by Administrator on 2015/12/7. 5 * 在类的内部,变量定义的顺序决定了初始化的顺序。
学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和static--->* 2先初始化父类的static成员变量和static* 3再初始化本类的static...