- 博客(55)
- 资源 (2)
- 收藏
- 关注
原创 Java并发编程的挑战
Java并发编程的挑战如果希望通过多线程来让任务执行的更快,将会面临上下文切换频繁,死锁,资源限制(硬件和软件)等问题1.上下文切换CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到另一个任务,但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。 上下文切换会影响多线程的执...
2018-04-14 22:52:26
324
原创 Java多线程3.1:synchronized同步方法
本文主要介绍Java多线程中的同步,也就是如何在Java中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题。非线程安全什么是非线程安全?非线程安全是指多个线程对同一个对象中的实例变量进行并发访问时发生,发生的结果就是脏读,也就是取到的结果其实是被更改过的,而线程安全就是以获得的实例变量的值是经过同步处理的,不会出现脏读的现象。方法内的变量为线程安全非线程安全问题存在于”实例变量”中,
2017-06-12 14:55:44
516
原创 Java多线程2:Thread常用方法
currentThread()currentThread()方法可返回代码段正在被哪个线程调用的信息。 Thread.currentThread().getName();Example:class MyThread1 extends Thread { MyThread1(){ System.out.println("执行构造函数"+Thread.currentThread(
2017-06-11 18:02:59
418
原创 Java多线程1:进程与线程
1.什么是进程?进程是操作系统结构的基础,是一次程序的执行,是系统进行资源分配和调度的一个独立单位。 这个解释有点懵了。简单来讲就是一个正在操作系统中的运行的exe程序就是一个进程。2.什么是线程?线程可以理解为是在进程中独立运行的子任务。比如:酷狗音乐.exe运行时,就会有很多子任务在同时运行,包括下载歌词线程,直播线程等3.线程的优点可以在同一时间内运行更多不同种类的任务,比如作为程序员,我们
2017-06-06 22:48:13
415
原创 MySql慢查询日志查看
通过命令查看慢查询最长时间,一般默认10sSHOW VARIABLES LIKE 'long_query_time我们可以修改该时间,比如我在这里设置为1s,方便测试。SET long_query_time=1通过命令SHOW VARIABLES LIKE '%query%';可以看到,log_slow_queries默认是OFF,我们必须要打开它,SET GLOBAL slow_query_l
2017-05-03 13:26:43
12900
原创 Java基础提高篇(三)持有对象
1.添加一组元素通过Arrays.asList()或者Collections.addAll()添加一组元素Arrays.asList()方法接收一个数组或一个用逗号分隔的元素列表Collections.addAll(),接收一个Collection对象,以及一个数组或一个用逗号分隔的元素列表(推荐使用这种方法)public class Demo1 { public static void m
2017-04-27 20:21:00
313
原创 Java基础提高篇(二)多态
在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种特征。不同类的对象对同一消息作出不同的响应就叫做多态。多态存在的三个条件1、有继承关系 2、子类重写父类方法 3、父类引用指向子类对象多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要它是从同一基类导出而来的,这种区别是根据方法行为的不同而表现出来的,虽然这些方法都可以通过同一个基类来调用。看一个简单的多态例子enum Ba
2017-04-27 13:25:16
331
原创 Java基础提高篇(一)初始化
冰冻三尺非一日之寒,滴水石穿非一日之功打好基础是关键,笔者准备老老实实搞搞基础了,不仅为了7月份的实习面试,还是为了自我能力的提升,基础的重要性不可忽视。牢骚发完了,进入正题吧。1.用构造器进行初始化构造器采用与类相同的名称,因此“每个方法首字母小写”的编码风格不适合用在构造器中构造器是一种特殊类型的方法,因为它没有返回值。这与返回值为空(Void)不同。默认构造器是没有形式参数的,他的作用是
2017-04-26 17:30:09
668
原创 JDK动态代理浅析
Spring框架中有一个核心的概念,叫做AOP(面向切面编程)。而AOP的本质其实就是jdk动态代理。所以学习动态代理还是很有必要的。笔者对动态代理也只是研究了一点皮毛,如有写的不对的地方欢迎指点。JDK动态代理有2个很重要的东西,一个是InvocationHandler接口,还有一个是Proxy类。先来看一下InvaocationHandler接口的定义:InvocationHandler is
2017-03-16 15:39:50
717
原创 java爬取智联招聘职位信息
第一次写爬虫,案例比较简单,就在智联招聘网站上爬取职位信息。技术点:IO流,集合,Jsoup使用,以及前端的知识代码如下:package com.wty.utils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader
2017-03-11 14:27:06
3749
3
原创 SpringMVC框架(一)环境搭建及入门程序
1.什么是SpringMVC?Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2
2017-03-06 22:28:26
608
原创 MyBatis(4)一级缓存,二级缓存
MyBatis的缓存,包括一级缓存,二级缓存。什么是一级缓存?一级缓存指的就是sqlsession,在sqlsession中有一个数据区域,是map结构,这个区域就是一级缓存区域。一级缓存中的key是由sql语句、条件、statement等信息组成一个唯一值。一级缓存中的value,就是查询出的结果对象。什么是二级缓存?二级缓存指的就是同一个namespace下的mapper,二级缓存中,也有一个m
2017-03-05 17:37:39
643
原创 MyBatis(三)配置文件,输入输出映射,动态SQL
1.在SqlMapConfig.xml文件中加载db.properties如果不写db.properties的话,那么也可以直接给value赋值,但是,这样写的话,后果就是维护起来变得麻烦,如果下次改了密码等信息,还需要在xml中寻找对应的value,代码一多的话,会很容易出错且效率不高。相反,可以直接寻找相应的properties文件。db.properties代码:db.driver=com.m
2017-02-28 00:00:22
753
原创 MyBatis (二) Dao层开发
传统Dao开发1.写一个StudentInterface接口public interface StudentInterface { public Student findStudentById(int id);}2.写一个StudentInterface接口的实现类public class StudentImpl implements StudentInterface { priva
2017-02-25 16:24:35
457
原创 MyBatis(一) 入门案例实现CRUD操作
什么是MyBatis官方文档是这么说的MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual settin
2017-02-25 13:53:25
564
转载 Java面试题全集(下)
原文链接:http://blog.csdn.net/jackfrued/article/details/44931161 这部分主要是开源Java EE框架方面的内容,包括hibernate、MyBatis、spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题
2017-02-22 07:08:34
3987
转载 Java面试题全集(中)
原文链接:http://blog.csdn.net/jackfrued/article/details/44931137 这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例
2017-02-22 07:06:27
908
转载 Java面试题全集(上)
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补充
2017-02-22 07:03:27
2808
原创 内部类
《Thinking In Java》内部类定义:可以将一个类的定义放在另一个类的内部,这就是内部类。创建内部类public class OuterTest1 {private String name = "王天逾";//创建内部类class InnerClass1{int i;InnerClass1(int i){this.i = i;}public void f1(){Syste
2017-02-21 17:06:52
300
原创 复用类
《Thinking In Java》复用类组合与继承组合:在新的类中产生现有类的对象。继承:按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新的代码。组合:public class TestDemo1 {public static void main(String[] args) { A a = new A(); a.f1();}}class A
2017-02-17 14:25:57
363
原创 搭建mm网站
技术点Bootstrap+jQuery 如果有感兴趣的小伙伴,欢迎下载源码。 https://github.com/yutianwang/mm 麻烦star一下哈。。。
2017-01-23 22:00:07
4494
原创 微信小程序---妹子demo
花了二天刷了一遍微信小程序官方文档,于是写了第一个小程序demo,算做入了个门吧。图片API来自gank.io 源代码下载链接:这里写链接内容
2016-12-15 14:16:47
3819
原创 Struts2系列之-----入门
主要内容Struts2简介环境搭建Struts2的执行过程及原理Struts2的基本配置Struts2的配置元素Struts2的Action配置结果集Struts2简介Struts2是Apache发行的MVC开源框架,它只是表现层的MVC框架。Struts1也是Apache发行的MVC开源框架,其核心是Servlet,随着业务的增大,弊端也被不断放大。Struts2是基于WebWor
2016-11-29 14:00:42
270
原创 用MVC模式实现简单用户登录注册功能
Model2模式Jsp+Servlet+JavaBeanMVC:开发模式M:Model 模型层 —-> JavaBeanV:View 视图层 —-> JspC:Controller 控制层 —-> Servlet分层思想:强内聚,低耦合案例先看效果图 通过这张图,我们简单的分析一下如何通过MVC实现登录注册功能.请看下图 此图并非原创,感谢原创! 通过分层,开发人员只需关注每个模块的具
2016-11-16 23:21:14
33871
6
原创 JDBC基础
JDBC基础概念:JDBC是Sun公司制定的一套操作数据库的标准规范核心DriverManager : 驱动管理类,用于注册驱动Connection: 与数据库创建的连接Statement:用于承载Sql语句的,并返回结果集ResultSet: 结果集,或者说是一张虚拟表导入Mysql驱动jar包实现JDBC操作1.注册驱动DriverManager.registerDriver(new c
2016-11-04 10:18:58
235
原创 MySQL基础代码示例
MySQL基础代码示例向emp表中插入数据`INSERT INTO emp(id,NAME,gender,birthday,salary,entry_date,RESUME) VALUE (1,’Tom’,’m’,’2005-1-1’,10000,’2016-10-29’,’good boy’)INSERT INTO emp(id,NAME,gender,birthday,salary,entr
2016-10-31 10:06:44
439
转载 web前端 | 一条“不归路” - 学习路线
声明:此文是小北哥哥原创,原文链接:”http://blog.csdn.net/xllily_11/article/details/52208182” 本文属于职业解惑系列,读完此文要么生,要么死。要么充满斗志,要么颓废放弃。没错,此文的观点可以让你极端,但极端的选择,完全取决于你个人!付出就有回报,做好现在,技术只是为了改变生活!—— 小北哥哥好的,我x装完了,情怀也写好了,那么我们进入【相守】
2016-09-26 15:43:14
508
转载 web 前端入坑第一篇:web前端到底是什么?有前途吗
声明:本文是小北哥哥原创,原文链接:”http://blog.csdn.net/xllily_11/article/details/52084476” web前端到底是什么?某货: “前几年前端开发人员鱼目混杂,技术参差不齐,相对学习起来不规范,导致> 前端开发人员聚集,所以现在前端工种和工资还是没得到普遍重视,但近2年来,> > HTML5、JS 的流行,让前端异常火爆,以后还会更有前途吗?请问
2016-09-26 15:41:01
9383
转载 web前端入坑第二篇:web前端到底怎么学?干货资料!
声明:这篇文章是小北哥哥原创。链接“http://blog.csdn.net/xllily_11/article/details/52145172” hi,大家好! 我的第一篇文章:【web前端到底是什么?有前途吗?】,在我没想到如此 ‘HOT’ 的情况下 得到很多好评和有效传播。 也为我近期新开的 个人前端公众号:前端你别闹(webunao) 直接增加了几百粉(果然,帅的
2016-09-26 15:36:39
415
原创 带你深入理解Android Handler机制
带你深入理解Android Handler机制说到消息机制,我们一定会想到Handler,由于Android系统规定主线程不能阻塞超过5s,否则会出现”Application Not Responding”。也就是说,你不能在主线程中进行耗时操作(网络请求,数据库操作等),只能在子线程中进行。下面先来看一下在子线程中访问UI会出现什么情况。 public void click(View v){
2016-09-05 00:20:51
2132
原创 Android上拉加载更多
Android上拉加载更多本次demo的核心是ListView+OnScrollListener+接口回调首先需要一个”底部正在加载”的布局文件,因及其简单,就不展示代码了,就是一个ProgressBar和一个TextView。自定义ListView:`public class MyFootListView extends ListView implements AbsListView.OnScro
2016-08-24 17:50:42
1379
3
原创 TabLayout
TabLayout使用最近在做一个项目,用到了TabLayout这个新型控件,所以写此文章记录下学习成果。先来看一下效果图实现这个效果其实很简单第一步:在Android Studio中,按ctrl+alt+shift+s,然后在Dependencies中添加design依赖。如图 第二步:声明控件:第三步:使用TabLayout`package com.yutianwang.test;imp
2016-08-16 23:48:03
787
1
原创 简谈Thread Local工作原理
简谈Thread Local工作原理什么是Thread Local?Thread Local 是一个线程内部的数据存储类,每一个线程都维护一个table[],通过set(),get()方法实现存取操作。只能在指定的线程中获取存储的数据,其他的线程一般无法获取。(注意:这里我用的是一般,可以使用InheritableThreadLocal达到其他线程获取数据的)什么情况下使用Thread Loc
2016-08-02 14:42:20
3132
原创 IntentFilter的匹配规则
允许转载请注明出处。IntentFilter的匹配规则对于初学者来说,学习IntentFilter的匹配规则还是有难度的,对于里面的规则肯定是有模糊不清的,为此,笔者写此文章以解惑!启动Activity分为二种,一种是显式,另一种是隐式。前者是指定包名和类名,而后者需要IntentFilter里面的3个过滤信息,action,category,data.需要说明的是,过滤列表中action,cate
2016-07-29 22:56:13
410
原创 Scroll简要分析
**实现滑动的7种方式**计算偏移量 1)layout()方法2)offsetLeftAndRight()和offsetTopAndBottom()3)LayoutParams 注意:选择你ViewGroup的具体容器是什么,我的是RelativeLayout。还有一种方式:不需要考虑父布局类型4)scrollerTo和scrollerBy scrollerTo和scrollerBy通常作用
2016-07-08 22:03:20
456
原创 ListView聊天
ListView提供了二个方法: getItemViewType:用来返回第postion个Item是什么类型 getViewTypeCount:返回不同布局的总数。知道了这二个方法后,我们先来看一看效果图: 下面贴一下代码: in.xml: out.xml代码差不多,这里不贴了。下面是Adapter适配器public class ChatItemListViewAdapter exten
2016-07-06 18:28:28
511
原创 《Android开发艺术探索》之View事件分发机制
有3个重要方法: dispatchTouchEvent(MotionEvent ev) onInterceptTouchEvent(MotionEvent ev)如果当前View拦截了事件,那么同一个事件序列当中,此方法不再调用。 onTouchEvent(MotionEvent ev)传递规则顺序:Activity—->Window(PhoneWindow)—->Vi
2016-06-18 10:40:53
468
原创 《Android开发艺术》之View的事件体系(上)
1.什么是View? View是所有控件的基类,从简单的Button到复杂的RelativeLayout,ListView,甚至容器ViewGroup它们的共同基类都是View.2.View的位置参数注意:这些坐标都是相对于View的父容器来说的 由上图易得View的宽高: width= right-left height = bottom-top通过View的getXXX()可以得到这
2016-05-23 11:44:23
306
原创 AIDL
AIDL(Android 接口描述语言):作用是用于进程间的通信。编译器会根据AIDL文件生成Java类,通过预先定义的接口以及Binder机制达到进程间的通信。 AIDL其实就是一个接口罢了,客户端通过bindService来与远程服务端建立连接,在该连接建立时会返回一个IBinder对象,该对象是服务端Binder的BinderProxy,客户端通过asinterface将该Binder
2016-05-15 17:11:09
275
原创 使用Intent传递对象
声明:笔者参考《第一行代码》一书: 方法1:使用Serializable接口:public class Person implements Serializable{ private String name; private int age; public String getName() { return name;}public void setName(Str
2016-05-14 11:18:43
273
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人