自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenmeng930601的博客

有很多很多问题只能自己去寻找答案

  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 线程池

线程池的创建public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)co

2017-08-02 15:28:38 776

原创 ReentrantLock重入锁

1使用案例public class ReenterLock implements Runnable{ public static ReentrantLock lock=new ReentrantLock(); public static int i=0; @Override public void run() { for (int j = 0; j <

2017-07-21 22:18:57 315

原创 方法分派

方法调用: 确定被调用方法的版本 解析:在类加载的解析阶段,所有方法调用中的目标在Class文件里面都是一个常量池中的符号引用,在类加载的解析阶段,会将其中一部分符号引用转化为直接引用(方法在实际运行时内存布局中的入口地址)。前提:编译期可知,运行期不可变,调用代码在程序代码写好编译器进行编译时就确定下来,静态方法、私有方法。 5条方法调用字节码指令: invokestatic:调用静态方法

2017-07-21 21:17:09 792

原创 二叉树按层遍历

题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行 方法一:一个队列实现 先将根节点入队列,需要一个变量记录当前层的结点个数 end=queue.size(),第一次循环end=1; 根节点出队列,根节点有左孩子,左孩子入队列,有右孩子右孩子入队列,完成后队列中有2个节点(假设左右孩子都在),记录当前层的结点个数 end=queue.size(),这两个结点依次出队列,并将其

2017-07-04 14:55:01 651

转载 方法重写原则

方法的重写规则 1)参数列表必须完全与被重写方法的相同 2)返回类型必须完全与被重写方法的返回类型相同;(备注:这条信息是标准的重写方法的规则,但是在java 1.5 版本之前返回类型必须一样,1.5(包含)j 版本之后ava放宽了限制,返回类型必须小于或者等于父类方法的返回类型 )。才有了 子类返回类型小于等于父类方法返回类型。在java里面这个怎么样都是正确的,请小伙伴谨记。 3)访问权

2017-06-21 22:00:40 2457 1

转载 Java类型信息

运行时识别对象和类的信息的两种方式:RTTI(Run-Time Type Identification)“反射“机制 RTTI的含义就是运行时识别一个对象的类型,类型信息是由Class对象表示的,每个Java里面的类都对应一个Class对象(在编写并且编译后),这个对象被保存在这个类的同名class文件里。为了生成Class对象,运行这个程序的Java虚拟机将使用“类加载器”子系统。 Cla

2017-06-21 21:38:13 378

原创 java继承

写出以下程序的运行结果,填写在每个输出语句后面的注释中public class ATest{public static void main(String args[]) {Sub sub = new Sub( );System. out .println(sub. x ); // 1 1System. out .println(sub. n );

2017-06-20 23:02:26 306

原创 垃圾回收器

上图展示了7种作用于不同分代的收集器,上面为新生代收集器,下面为老年代收集器,如果两个收集器之间存在连线,说明它们可以搭配使用。 Serial收集器: Serial收集器是最基本、发展历史最悠久的收集器。单线程收集器,只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是它在进行垃圾收集时,必须暂停其他线程,直到垃圾收集结束。是虚拟机运行在Client模式下的默认新生代收集器。 优点:

2017-06-20 15:05:27 239

原创 垃圾收集器与内存分配策略

哪些内存需要回收? 什么时候回收? 如何回收? 运行时数据区的程序计数器、虚拟机栈、本地方法栈3个区域是线程私有的,与线程生命周期一致;栈中的栈帧随着方法的进入和退出而有条不紊地执行出栈和入栈操作。每一个栈帧中分配多少内存基本上是在结构确定时就已知,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就随着回收了。而Java

2017-06-19 22:54:20 222

转载 java内存区域与内存溢出异常

程序计数器 程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。 每个线程都需要一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,该区域是线程私有的。 如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的

2017-06-16 14:40:55 247

转载 java静态类型与动态类型

静态类型检查:基于程序的源代码来验证类型安全的过程; 动态类型检查:在程序运行期间验证类型安全的过程; Java使用静态类型检查在编译期间分析程序,确保没有类型错误。基本的思想是不要让类型错误在运行期间发生。class A { A me() { return this; } public void doA() { System.out.pri

2017-06-13 09:51:13 3470

原创 Lock使用

1ReentrantLock实现同步package service;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class MyService { private Lock lock=new ReentrantLock(); public

2017-06-08 09:52:37 279

原创 synchronized关键字

1修饰一个方法 在方法前加关键字synchronized即可,锁对象属于类的实例synchronized public void add(){//todo}注意: 1)A线程持有object对象的Lock锁,B线程可以以异步的方式调用object对象中的非synchronized方法 2)同步不具有继承性 子类覆盖了父类synchronize关键字修饰的方法,若子类方法没有用synchr

2017-06-07 23:04:21 272

原创 volatile关键字

java内存模型,可以理解为变量的访问规则,在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。 线程、主内存、工作内存的交互关系如下: 8种内存交互操作: lock: unlock: read: load: use: assign: store: write: volatile关键字作用 1可见性:保证变量对所有线程可见 普通变量的值在线程间传递均需要通过主内

2017-06-07 10:47:15 211

原创 MySQL创建计算字段

1使用场景存储在数据库中的数据一般不是应用程序所需要的格式,需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户机应用程序中重新格式化。 例如: 一张学生成绩表,想要输出学生姓名和成绩,但是这两个信息包含在不同的列表 需要根据表数据进行总数、平均数计算或其他计算2拼接字段Concat()函数拼接两个列 SELECT Concat(vend_name, ‘(‘,

2017-05-03 21:12:10 594

原创 WHERE子句使用正则表达式进行搜索过滤

正则表达式:在列值内进行匹配(通配符匹配整列)1基本字符匹配SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’ ORDER BY prod_name;SELECT prod_name FROM products WHERE prod_name REGEXP ‘.000’ ORDER BY prod_name; .

2017-05-03 20:47:22 4525

原创 MySQL用通配符进行过滤

通配符:用来匹配值的一部分的特殊字符 搜索模式:由字面值、通配符或者两者组合成的搜索条件 在搜索字句中使用通配符,必须使用LIKE操作符,LIKE操作符指示MySQL后跟的搜索模式是通配符匹配而不是直接相等匹配。 百分号%通配符: 表示任何字符串出现任意次数 1通配符位于搜索模式最后 SELECT prod_id,prod_name FROM products WHERE prod_

2017-05-03 11:28:13 1547

原创 Spring MVC错误:Caused by: java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException

Caused by: java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException at app17a.dao.UserJDBCTemplate.setDataSource(UserJDBCTemplate.java:18) at sun.reflect.NativeMethodAccess

2017-04-25 09:45:00 11284 19

原创 JSP中数据库的使用

1数据库MySQL 5.7 2MySQL JDBC驱动mysql-connector-java-5.1.37-bin.jar 3数据库管理工具 Navicat1新建数据库employee,表salary,将数据库文件放入web项目下的WebRoot目录下 2导入mysql-connector-java-5.1.37-bin.jar,加载JDBC驱动 方式一: (一直加载失败。。。)

2017-04-14 10:53:35 848

原创 The servlets named [A] and [B] are both mapped to the url-pattern [/servlet/]which is not permitted

错误:Caused by: java.lang.IllegalArgumentException: *The servlets named [client] and [servlet.com.ClientRedirect] are both mapped to the url-pattern [/servlet/ClientRedirect] which is not permitted*

2017-04-08 11:36:12 5720

原创 Hello World Servlet

1新建一个Servlet文件HelloWorld.javapackage servlet.com;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import java

2017-04-06 16:19:44 447

原创 MyEclipse2017新建web项目没有web.xml

新建项目不要直接finish,选择下一步,勾选上web.xml,默认情况不选中。

2017-04-06 16:09:03 12116

原创 JSP中文乱码

<%@ page contentType=”text/html;charset=UTF-8” %> 页面需要设置转码 我是标题! 我是主体!

2017-04-02 16:07:11 355

原创 Caused by: android.database.StaleDataException: Attempted to access a cursor after it has been close

03-24 10:35:43.322 818-818/indoorlocalization.qianniu.com.indoorlocalization E/AndroidRuntime: FATAL EXCEPTION: main

2017-03-24 10:42:18 904

原创 排序算法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-03-20 12:38:29 425

转载 基本算法思想

穷举算法:从所有可能情况中搜索正确答案,效率并不高,适用于没有明显规律可循的场合。 执行步骤: (1)确定所有可能结果范围 (2)对于一种可能的结果,计算其结果 (3)判断结果是否满足要求,不满足搜索下一个可能结果,满足则表示寻找到一个正确答案 例子:鸡兔同笼问题public class P3_1 { static int chicken,rabbit; public st

2017-03-19 16:28:56 430

原创 11持有对象

11.3添加一组元素 接受一个数组或用逗号隔开的元素列表 Arrays.asList(1,2,3,4,5) Integer[] moreInts={6,7,8,9,10}; collection.addAll(Arrays.asList(moreInts)); collection.addAll(Collection c)接收一个Collection对象 Collections.add

2016-12-06 10:37:27 252

原创 Constant expression required

switch 语句编译报错Constant expression required 问题:case语句后面必须是常量,使用final修饰 public static final int NotifyType_trip=10004;

2016-12-01 09:22:39 30573 1

原创 内部类

使用方式: 外部类方法中使用与其他相同 外部类方法返回内部类引用 可以访问外围类的所有元素,包括private修饰的 10.3.this .new .this 在内部类需要生成外部类的引用 .new 在另一个类中创建内部类对象 Outer outer=new Outer(); Outer.Inner inner=outer.new Inner(); 静态内部类不需要对外部对象的引

2016-11-25 11:06:13 231

原创 自定义属性简单使用

1在values目录下新建attrs文件 2在构造器中通过TypedArray获取属性 3给控件设置属性值 4在代码中使用<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="MyToggleView">//属性集名称,指定这些属性是属于哪个控件的 <attr name="

2016-11-04 20:48:23 660

原创 自定义可滑动、可点击的开关

1效果 单击:动画效果改变开关的状态 滑动:根据拖动距离设置颜色渐变,拖动距离小于某一值返回原状态,否则返回另一状态 主要步骤: 1onMeasure() defaultWidth=200dp,defaultHeight=defaultWidth*0.55 @Override protected void onMeasure(int widthMeasureSpec, int heigh

2016-11-04 15:43:25 547

转载 安卓服务

1进程优先级概念 Android操作系统尝试尽可能长时间的保持应用的进程,但当可用内存很低时最终要移走一部分进程。怎样确定那些程序可以运行,那些要被销毁,Android让每一个进程在一个重要级的基础上运行,重要级低的进程最有可能被淘汰,一共有5级,下面这个列表就是按照重要性排列的:1 一个前台进程显示的是用户此时需要处理和显示的。下列的条件有任何一个成立,这个进程都被认为是在前台运行的。

2016-10-08 21:50:41 320

原创 百度地图工具类

```/** * Created by chenmeng on 2016/9/2. */public class BaiduMapUtil { private final static String TAG = BaiduMapUtil.class.getSimpleName(); private Context mContext; public BaiduMap m

2016-09-07 16:39:02 592

原创 安卓Service向Activity传递数据,更新UI

接口回调、Handle、活动和服务绑定 1服务:执行定时任务,发起网络请求定位,请求到的结果传递到活动,在地图上展示。2活动关键代码: 绑定服务后会获取LocationService.LocationBinder对象,在此处调用getLocationService()方法获取Service实例,service设置回调接口获取位置信息,并发送消息,handler接收消息后更新UI。 //绑定服务

2016-09-07 16:24:52 2369

原创 拨号

1声明权限 2注意Uri.parse()参数形式Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+mCurrentPeople.getPhone()));startActivity(intent);

2016-09-02 15:02:37 288

转载 java类和对象的初始化

JAVA类与对象的初始化JVM通过加装、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。类型的生命周期如下图所示: 类的初始化和对象的初始化(类的实例化、创建一个对象)是两个不同的事情,类的初始化在类的实例化之前。 1类的初始化 类初始化阶段,主要是为类变量(静态变量)赋予正确的初始值。这里的“正确”初始值指的是程序员希望这个类变量所具备的起始值。一个正确的初始值是通

2016-08-08 14:32:30 2315

原创 文章标题

单例类:一个类只能有一个实例,应用private修饰该类的构造器,不允许其他类任意创建该类的实例,同时应该提供一个public 方法返回该类的实例,该public 方法必须是static 的,因为之前未创建类的实例,还应用一个变量缓存该类实例,判断是否已创建过该类实例,因为该成员变量必须被上面的静态方法访问,所以必须用static修饰符。 具体代码例子: class Person{

2016-04-15 10:10:40 247

空空如也

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

TA关注的人

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