- 博客(124)
- 资源 (2)
- 收藏
- 关注
原创 修改jenkins默认端口
jenkins默认端口8080,8080端口是常用端口,为了防止和其他软件冲突,需要修改一下1. 修改/etc/init.d/jenkins脚本,修改do_start函数的check_tcp_port命令,将端口8080改为80812. 修改/etc/default/jenkins文件,将端口改为80813.重启jenkinsservice jenkins
2017-06-12 21:25:54 3525
原创 解决首次访问jenkins,输入默认密码之后,一直在引导界面
我使用的jenkins.war,部署在tomcat服务器中,首次访问输入密码后一直卡在插件安装前的引导界面解决办法:赋予jenkins项目777权限chmod -R 777 jenkins
2017-06-12 19:47:31 5248
转载 使用docker构建jenkins镜像并运行容器
DockerHub上有docker官方jenkins镜像: https://registry.hub.docker.com/_/jenkins/ 同时github上有其源码: https://github.com/jenkinsci/docker 官方jenkins镜像中所使用的jenkins是Jenkins的LTS(Long Term Support)发布版本
2017-06-11 18:13:31 922
转载 Java中byte转换int时与0xff进行与运算的原因
1.问题由来剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[i] & 0xFF);
2017-06-10 18:24:43 279
原创 Android基础之Android项目目录结构
项目整体目录介绍1. .gradle和.idea是Android Studio自动生成的文件,无需过问2. app是android项目模块,代码和资源等都在里面3. build文件夹中是自动构建项目生成的文件,无需过问4. gradle文件夹中放置了gradle wrapper的配置文件,用于gradle构建配置5. .gitignore是版本管理工具中忽略不上传的文件
2017-06-10 15:16:30 345
原创 Android基础之Android四大组件
Android系统四大组件分别是Activity、Service、Content Provider和Broadcast Receiver。1. Activity 一个Activity通常就是一个屏幕2. Service 在后台运行,完成应用指定逻辑操作,为应用提供服务3. Broadcast Receiver 对发送出来的Broadc
2017-06-10 14:26:06 185
原创 Android基础之Android系统架构
Android系统主要分为四层,从上到下分别为应用程序层、应用程序框架层、系统运行层和linux内核层,如图所示。1. 应用层 手机上安装的应用程序属于这一层2. 应用框架层 提供开发应用层应用可能使用的api3. 系统运行库 1)程序库 程序库包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过A
2017-06-10 14:15:30 239
转载 Android Studio之删除模块和删除项目
当你想在Android Studio中删除某个module时,大家习惯性的做法都是选中要删除的module,右键去找delete。但是在android Studio中你选中module,右键会发现没有delete,如图: 为什么会没有delete按钮,不科学啊,难道是Android Studio的bug或者设计组考虑不周。其实这边没有delete按钮主要原因是因为A
2017-06-10 10:36:30 36086 4
转载 DES/3DES/AES 三种对称加密算法在 Java 中的实现
有两句话是这么说的:1)算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。2)编程就是算法和数据结构,算法和数据结构是编程的灵魂。注意,这可不是我说的,是无数程序员总结的,话说的很实在也很精辟,若想长久可持续发展,多研究算法还是很有必要的,今天我给大家说说加密算法中的对称加密算法,并且这里将教会大家对称加密算法的编程使用。包含DES、3DES和
2017-06-09 22:26:37 2400
转载 Java 多线程并发编程之互斥锁 Reentrant Lock
Java 中的锁通常分为两种:通过关键字 synchronized 获取的锁,我们称为同步锁,上一篇有介绍到:Java 多线程并发编程 Synchronized 关键字。java.util.concurrent(JUC)包里的锁,如通过继承接口 Lock 而实现的 ReentrantLock(互斥锁),继承 ReadWriteLock 实现的 ReentrantReadWriteLoc
2017-06-09 21:23:46 855
转载 Java 多线程并发编程之 Synchronized 关键字
synchronized 关键字解析同步锁依赖于对象,每个对象都有一个同步锁。现有一成员变量 Test,当线程 A 调用 Test 的 synchronized 方法,线程 A 获得 Test 的同步锁,同时,线程 B 也去调用 Test 的 synchronized 方法,此时线程 B 无法获得 Test 的同步锁,必须等待线程 A 释放 Test 的同步锁才能获得从而执行对应方
2017-06-09 21:13:18 203
转载 Java 多线程之内置锁与显示锁
Java中具有通过Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是互有补充,今天就来做一个总结。Synchronized内置锁获得锁和释放锁是隐式的,进入synchronized修饰的代码就获得锁,走出相应的代码就释放锁。synchronized(list){ //获得锁 list.append(); l
2017-06-09 20:24:23 213
转载 Java 类加载机制详解
什么是 Java 类加载机制?Java 虚拟机一般使用 Java 类的流程为:首先将开发者编写的 Java 源代码(.java文件)编译成 Java 字节码(.class文件),然后类加载器会读取这个 .class 文件,并转换成 java.lang.Class 的实例。有了该 Class 实例后,Java 虚拟机可以利用 newInstance 之类的方法创建其真正对象了。Cla
2017-06-09 19:51:55 190
转载 Java 元编程及其应用
首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力.同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个完整系统,另外一个是标准的SSM(Spring-SpringMVC-Mybatis)Java程序员,用了半天,才把环境刚刚搭好.可以说,社区内,成功的web框架中基本没有不强依赖元编程技术的,框架做的工作越多,应
2017-06-09 16:44:52 577
转载 Java 并发集合的实现原理
本文简要介绍Java并发编程方面常用的类和集合,并介绍下其实现原理。AtomicInteger可以用原子方式更新int值。类 AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对相应类型单个变量的访问和更新。基本的原理都是使用CAS操作:boolean compareAndSet(expectedVa
2017-06-09 16:18:14 234
转载 我是一个线程
转载 码农翻身微信公众号 2016-04-02 老刘 《我是一个线程(修订版)》第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了
2017-06-09 10:40:26 183
转载 Spring本质系列(2)-AOP
转载 码农翻身微信公众号 2016-06-25 刘欣 《spring 的本质系列(1) -- 依赖注入》 据说有些词汇非常热门和神奇, 如果你经常把它挂在嘴边,就能让自己功力大涨, 可以轻松找到理想的高薪的工作,这些词就包括上一篇文章(《Spring本质系列(1) --依赖注入》)中聊过的IoC 和 DI, 也包括今天要聊的AOP。 AOP(Aspe
2017-06-09 10:19:18 593
转载 Spring 的本质系列(1) -- 依赖注入
1. 对象的创建 面向对象的编程语言是用类(Class)来对现实世界进行抽象, 在运行时这些类会生成对象(Object)。 当然,单独的一个或几个对象根本没办法完成复杂的业务, 实际的系统是由千千万万个对象组成的, 这些对象需要互相协作才能干活,例如对象A调用对象B的方法,那必然会提出一个问题:对象A怎么才能获得对象B的引用呢? 最简单的办法无非是
2017-06-09 08:51:20 1151
转载 获取项目中Classpath中的资源路径
classpath 是什么 classpath实际上就是编译后的 以 classes 文件夹为起点的路径各种path获取到的路径的区别 1. Main.class.getResource(""); -> 得到的是当前class所在的路径 2. Main.class.getResourceAsStream("");
2017-06-08 21:06:31 546
转载 Java 线程池(ThreadPoolExecutor)原理分析与使用
在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭开线程池的面纱。使用线程池的好处1、降低资源消耗可以重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性线程是稀缺资源,如果无限制地
2017-06-07 20:15:09 366 1
转载 Spring 学习笔记
Spring致力于提供一种方法管理你的业务对象。在大量Java EE的应用中,随处可见Spring。今天我将简单的介绍一下Spring这个框架。本文适合读者:想学Spring的Java开发者刚用Spring不久的人Why为什么要使用Spring?Spring主要两个有功能为我们的业务对象管理提供了非常便捷的方法:DI(Dependency Inj
2017-06-07 19:33:35 584
转载 Java 线程 Executor 框架详解与使用
在HotSpot VM的线程模型中,Java线程被一对一映射为本地操作系统线程。Java线程启动时会创建一个本地操作系统线程;当该Java线程终止时,这个操作系统线程也会被回收,在JVM中我们可以通过-Xss设置每个线程的大小。操作系统会调度所有线程并将它们分配给可用的CPU。 在上层,java多线程程序通常把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这
2017-06-07 15:30:12 277
转载 Java数组使用总结
1. 概念 同一种类型数据的集合。其实数组就是一个容器。2. 初始化 Java 数组初始化的两种方法: 静态初始化: 程序员在初始化数组时为数组每个元素赋值; 动态初始化: 数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。//静态初始化数组:方法一 String cats[] = new String
2017-06-07 10:20:22 316
转载 java泛型中通配符的使用
通配符有三种: 1、无限定通配符 形式 2、上边界限定通配符 形式 //用Number举例 3、下边界限定通配符 形式 //用Number举例1、泛型中的?通配符 如果定义一个方法,该方法用于打印出任意参数化类型的集合中的所有数据,如果这样写import java.util.Array
2017-06-06 21:19:44 510
转载 java泛型中类型擦除以及类型擦除带来的问题
一、Java泛型的实现方法:类型擦除 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类型擦除。 如在代码中定义的List和List等类型,在编译后都会编程List。JVM看到的只是List,而由泛型附加的类型信息对JVM来
2017-06-06 21:13:12 426
转载 Java泛型总结
一. 泛型概念的提出首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn");
2017-06-06 19:07:34 199
转载 经典的java自定义数据库连接池代码
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import j
2017-06-05 20:02:18 4161
转载 SpringMVC面试总结
1. 简单的谈一下SpringMVC的工作流程流程 1. 用户发送请求至前端控制器DispatcherServlet 2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3. 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
2017-06-03 16:24:27 3709
转载 jsp,struts1,struts2,springMvc开发性能对比
看了几篇关于三者的性能比较的文章:(这些文章和测试我并没有做过实验,仅用于参考)性能对比 注:测试都没有数据库,也没有复杂业务,action和jsp中内容很简单,目的就是测试MVC部分的性能。 1. 纯JSP的性能应该最高,这不难理解,JSP被编译成Servlet后,没有任何多余的功能,收到请求后直接处理。(这也验证一句经典的话:越原始效率就越高。
2017-06-03 15:16:04 418
转载 典型数据库架构设计与实践 | 架构师之路
本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”数据库为例,讲解数据库架构设计的常见玩法。
2017-06-03 12:35:17 224
转载 commons-beanutils使用介绍
commons-beanutils是Apache开源组织提供的用于操作JAVA BEAN的工具包。使用commons-beanutils,我们可以很方便的对Bean对象的属性进行操作。今天为大家介绍一下该包的常用方法。
2017-06-03 08:46:16 463
转载 JDBC中Statement,PreparedStatement和CallableStatement的比较
区别1. Statement、PreparedStatement和CallableStatement都是接口(interface)。 2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自PreparedStatement。 3. Statement 每次执行sql语句,数据库都要执行s
2017-06-02 22:07:11 442
转载 jdbc基本使用
1. jdbc工具类,提供数据库连接和释放import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import
2017-06-02 21:44:02 164
转载 jdbc介绍
1. 什么是JDBC Java语言访问数据库的一种规范,是一套API JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。 JDB
2017-06-02 21:20:12 298
转载 Java类型强制转换
在Java中,之所以需要强制类型转换是为了防止程序员在不知情的情况下把A类型数据错当成B类型的数据。将一种类型的值赋给另一个类型的变量是很常见的,如果这两种是兼容的,那么Java将执行自动转换,例如int和long,将int类型赋值给long类型的变量,总是可行的。但不是所有的类型都兼容。例如,没有将double类型转换为byte型的定义。但是不兼容的类型之间的转换仍然是可能的。达到这个目的,就需
2017-06-02 20:32:02 318
转载 Java中的RTTI
并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这就是RTTI(Runtime Type Information,运行时类型信息)。 运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。 多态
2017-06-02 11:02:45 765
转载 Java程序员的10道XML面试题
问题1:XML是什么答:XML即可扩展标记语言(Extensible Markup language),你可以根据自己的需要扩展XML。XML中可以轻松定义, 等自定义标签,而在HTML等其他标记语言中必须使用预定义的标签,比如,而不能使用用户定义的标签。使用DTD和XML Schema标准化XML结构。XML主要用于从一个系统到另一系统的数据传输,比如企业级应用的客户端与服务端。问题
2017-06-02 08:21:53 301
转载 java字符串分解 StringTokenizer用法
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串。如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你。 先看个例子:public static void main(String[] args) { StringTokenizer st = new StringTokenizer("www.ooobj.
2017-06-01 21:49:28 473
转载 java中常用的正则表达式
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher。Pattern 是一个正则表达式经编译后的表现模式Matcher是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给
2017-06-01 21:07:10 195
转载 Java的格式化输出
在javaSE5中,推出了C语言中printf()风格的格式化输出。这不仅使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更大的控制能力。1. System.out.format() Java Se5引入的format方法可用于PrintStream或PrintWriter对象,其中也包括System.out对象。public static voi
2017-06-01 16:55:38 1557
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人