- 博客(147)
- 资源 (8)
- 收藏
- 关注
原创 unsafe类简介
前言Unsafe是Java中一个底层类,包含了很多基础的操作,比如数组操作、对象操作、内存操作、CAS操作、线程(park)操作、栅栏(Fence)操作,JUC包、一些三方框架都使用Unsafe类来保证并发安全。Unsafe类在jdk 源码的多个类中用到,这个类的提供了一些绕开JVM的更底层功能,基于它的实现可以提高效率。但是,它是一把双刃剑:正如它的名字所预示的那样,它是Unsafe的,...
2019-01-06 16:10:14
6369
原创 简单设计一个高并发的系统
问题如何设计一个高并发系统?分析说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,...
2019-01-05 21:10:45
1451
1
原创 链表常用函数(java实现)
废话少说,上链表的数据结构class ListNode { ListNode next; int val; ListNode(int x){ val = x; next = null; }}1.翻转链表ListNode reverse(ListNode node){ ListNode prev = ...
2018-11-27 22:47:04
3482
原创 Java开发人员必知必会的常用类库和API
一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API。顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能。本文总结了日志、JSON解析、单测、...
2018-11-26 22:12:05
1408
原创 算法的时间与空间复杂度
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需...
2018-11-25 12:01:35
1283
1
转载 Java反射中Class.forName()加载类和使用ClassLoader加载类的区别
最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。解释在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字...
2018-10-31 14:07:25
2801
2
转载 从jvm的角度来看java的多线程
最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天。决定把自己关于java多线程的所学整理成一篇文章,从最基础的为什么使用多线程,一直深入讲解到jvm底层的锁实现。多线程的目的为什么要使用多线程?可以简单的分两个方面来说:在多个cpu核心下,多线程的好处是显而易见的,不然多个cpu核心只跑一个线程其他...
2018-09-23 22:09:15
2362
转载 消息队列应用场景
https://www.cnblogs.com/stopfalling/p/5375492.html1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。(1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。(2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,...
2018-09-19 21:16:24
2726
转载 Java读书笔记十一(Java中的内省机制)
1.前言最近在学习Java的时候,突然发现了这个概念,鉴于好奇心的压迫,于是打算写一篇博客来总结一下。2.什么是内省机制为了让程序员们更好的从左Java对象的属性,SUN公司开发了一套API,就被我们称为“内省”,有利于我们对类对象的属性的操作,减少了代码的数量。3.内省和反射有什么区别反射式在运行状态把Java类中的各种成分映射成相应的Java类,可...
2018-06-11 18:12:40
1684
原创 MyBatis 获取子类的属性
这里有个model类:基类:public class user { public int getId() { return id; } public void setId(int id) { this.id = id; } private int id;}子类:public class vipUser extends user { ...
2018-06-01 10:28:27
4585
原创 java实现K-means算法,k-means聚类算法原理
/** * 需要所有point 以及族中心list * * @author:Yien * @when:2018年5月20日下午3:14:09 * @Description:TODO * @param:@param pointList * @param:@param centerPointList * @param:@return * @return:Map&...
2018-05-20 19:33:19
1108
原创 【最快捷】解决Navicat 出错:1130-host . is not allowed to connect to this MySql server,MySQL
本人建议用授权法解决这样的问题 不用cmd那么麻烦。1、首先点击新建查询。2、执行SQL语句例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH PRIVILEGES;如果你想...
2018-05-12 16:45:20
1585
转载 Java并发系列(4)AbstractQueuedSynchronizer源码分析之条件队列
通过前面三篇的分析,我们深入了解了AbstractQueuedSynchronizer的内部结构和一些设计理念,知道了AbstractQueuedSynchronizer内部维护了一个同步状态和两个排队区,这两个排队区分别是同步队列和条件队列。我们还是拿公共厕所做比喻,同步队列是主要的排队区,如果公共厕所没开放,所有想要进入厕所的人都得在这里排队。而条件队列主要是为条件等待设置的,我们想象一下如果...
2018-05-02 12:54:44
655
4
原创 分享一篇网易杭州研究院的面经
分享一篇网易杭州研究院的面经楼主是18届本科参加的春季补招一、首先看看招聘简章(问题也基本问要求上的)Java开发-网易文漫-2018-杭州研究院922发布时间:2018-03-12职位类别: 技术>服务端开发 最低学历: 本科工作地点: 杭州市 工作年限: 不限招聘人数: 1人...
2018-04-10 20:24:00
3146
原创 Spring难以理解的问题总结
1、Spring事务传播机制(主要指同时包含多个事物时的传播行为)Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务上下文的规则(是否要有独立的事务隔离级别和锁)概述当我们调用一个基于Spring的Service接口方法(如...
2018-04-09 12:10:33
589
原创 程序员高效的准备HR面试
今天和大家分享的主题是「程序员跳槽时,如何高效地准备面试?」,但其实今天主要涉及到的是 HR 在面试时有哪些套路,这样可以见招拆招,斩获 offer!主要包括以下内容:一、程序员面试过程中,面试官想要从"自我介绍"获得什么信息? 二、如何去提炼简历中的精华?如何在沟通中体现你的软技能? 三、如何去解释简历中的瑕疵? 四、HR通常喜欢问哪些与技术无关的问题?这些问题背后代表了什么...
2018-04-08 20:13:33
2184
原创 比较有意思的Java问题总结
1、如何不需要手动关闭流操作?在Java7中,只要实现的自动关闭接口(Closeable)的类都可以在try结构体上定义,java会自动帮我们关闭,即使在发生异常的情况下也会。try (OutputStream out = new FileOutputStream("")){ // ...操作流代码 } catch (Exception e) { e.prin...
2018-04-07 18:05:38
1925
原创 浅谈Java中的锁机制介绍
浅谈Java中的锁一、 悲观锁和乐观锁 悲观锁(Pessimistic Lock):顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。for update就是一种。 乐观锁(Optimisti...
2018-04-03 14:23:37
7307
原创 Java实现代码-比较器
如下代码:import java.util.*;class company implements Comparable { private String name; private String technology; private double marketValue; private double salary; private int city; public compa...
2018-03-31 12:29:08
1332
原创 generator自动生成实体
最全配置注解:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator...
2018-03-25 14:51:53
2708
原创 【最简洁】mysql免安装版安装配置教程
下载链接:https://dev.mysql.com/downloads/mysql/5.5.html#downloads1、解压文件我下的是mysql-5.5.59-win32.zip(D:\mysql-5.5.59-win32)2、配置好环境变量:1)右键单击我的电脑->属性->高级系统设置(高级)->环境变量 点击系统变量下的新...
2018-03-20 14:34:44
9977
原创 Eclipse修改其他(项目或包Exploer面板)字体大小
1、在Eclipse文件夹下找到如下CSS文件夹(可以搜索)我的w10在这个目录可以 参考D:\eclipse-jee-oxygen-2-win32-x86_64\eclipse\plugins\org.eclipse.ui.themes_1.2.1.v20170809-1435\css2、修改对应皮肤下的CSS文件(我的是e4_default_win.css)末尾添加如下代码CTabFolder...
2018-03-20 13:07:05
7086
1
原创 Java实现代码-反射
代码如下:package 重要思想;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Date;import org....
2018-03-15 14:07:19
2176
原创 Java实现代码-链表
如下代码:package 数据结构;class node { node next; int data; public node(node next, int data) { super(); this.next = next; this.data = data; } public String toString() { return "next:" + next +...
2018-03-15 13:28:25
2300
原创 Java Collections API中的表
Iterator接口每次对next的调用都给出集合的(尚未见到的)下一项。因此,第1次调用next给出第1项,第2次调用给出第2项,等等。 当直接使用Iterator(而不是通过一个增强的for循环间接使用)时,重要的是要记住一个基本法则:如果对正在被迭代的集合进行结构上的改变(即对该集合使用add、remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器时将会有Concurr...
2018-03-11 14:26:01
831
原创 自写SpringMVC框架
更新1:2018/3/31 补充图片Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面。如果不看Spring的源码,你将会失去一次和大师学习的机会:它的代码规范,设计思想很值得学习。我们程序员大部分人都是野路子,不懂什么叫代码规范。写了一个月的代码,最后还得其他老司机花3天时间重构,相信大部分老司机都很头疼看新手的代码。废话不...
2018-03-08 15:08:09
1766
原创 java动态代理
代理:设计模式代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。通过代理层这一中间层,有效的控制对于真实委托类对象的直接访问,同时可以实现自定义的控制策略(Spring的AOP机制),设计上获得更大的灵活性。java动态代理的类和接口(jdk1.6源...
2018-03-08 15:06:55
4124
原创 JAVA常见错误
1 在Java中,没有goto语句。因为大量使用goto语句会降低程序的可读性和可维护性,所以Java语言取消了goto的使用。同时,为了避免程序员自行使用goto所带来的混乱,Java语言仍将goto定义为一个关键字,但是没有定义任何语法,故称为“保留字”。2 true、false和null在IDE中虽然以不同的颜色显示,但是并不是关键字,而是“字面常量”,就和String类型的abc一...
2018-03-03 20:39:02
5279
原创 Myeclipse配置优化
Myeclipse配置优化MyEclipse 优化速度方案仍然主要有这么几个方面:去除无需加载的模块、取消冗余的配置、去除不必要的检查、关闭更新。 一:去除不需要加载的模块一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止加载启动。【MAC系统】:点击myeclipse软件-->偏好设置打开配置窗口...
2018-03-03 10:46:33
4097
原创 mybatis基础知识入门
mybatis基础知识mybatis第一天:基础知识mybatis是一个java持久层框架,java中操作关系型 数据库用的是jdbc,mybatis是对jdbc的一个封装。1、从一个jdbc程序开始,通过jdbc 程序找到使用原生态的jdbc开发程序,存在哪些问题??通过学习mybatis,mybatis是如何解决这些问题。2、mybatis的架构(...
2018-03-03 10:21:12
5889
原创 软件技能
摘要:根据我的开发实践及理解,梳理了作为软件工程师解决现实问题应当具备的基础技能。难度:中级。 编程开发本质是运用程序和计算机来解决现实中的各种问题。因此,编程开发人员的才智发挥载体是计算机或者说计算设备,直接武器是程序。程序员用来进行编程开发所需要的技能,归结起来主要如下: 理解计算模型和框架:顺序计算、并发计算(并行计算、分布式计算); 理解应用所基于的计算模型和框...
2018-02-27 13:44:53
5637
原创 Maven命令
一、Maven常用命令在学习使用Maven构建项目之前,先来了解一下Maven一些实用的命令。mvn的命令有很多,在项目开发中,理解了下面的几个常用命令后,运用maven就基本没有问题了。Maven常用的命令如下:1.1 常用的mvn命令mvn archetype:create 创建 Maven 项目mvn compile 编译主程序源代码,不会编译test目录的源
2018-02-06 17:43:51
682
原创 Java线程池文字描述
1.为什么要使用线程池在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个jvm里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足。为
2018-02-06 16:59:59
3989
转载 Java实现验证码功能
Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字母,随机选取一定数量的字母随机生成,然后在画板上随机生成几条干扰线。首先,写一个验证码生成帮助类,用来绘制随机字母: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java
2018-02-06 16:52:40
521
原创 阿里、腾讯、百度、华为、京东、搜狗和滴滴最新面试题汇集
前一段时间和大牛们交流了一下,据反馈现在Android岗位也没有以前那么多了,没这么好找了,面临2016年寒冬季节,大量公司模仿O2O模式导致死掉企业的很多,在加之培训机构大量的培训人,导致供大于求,当然这不意味着饱和,只是市场更趋于合理一些(只要技术好不用怕的)。最近结合一些面试的同学和大牛们(张旭童)反馈,前几天听童哥去阿里面试顺便整理了下一些面试题目。希望对大家有所帮助,后期会不断更新添加新...
2018-01-15 11:38:34
784
原创 生活中的死锁例子及解决办法
1. 有两条道路双向两个车道,即每条路每个方向只有一个车道,两条道路十字交叉。假设车辆只能向前直行,而不允许转弯和后退。如果有4辆车几乎同时到达这个十字路口,如图(a)所示;相互交叉地停下来,如图(b),此时4辆车都将不能继续向前,这是一个典型的死锁问题。从操作系统原理的资源分配观点,如果4辆车都想驶过十字路口,那么对资源的要求如下: l 向北行驶的车1需要象限a和b;
2017-12-28 15:50:26
5651
原创 List<String> 和 ArrayList<String>声明的区别
最近对这两个问题比较懵逼,关于List和ArrayList、List list = new ArrayList(); 好了,先搞明白List 和 ArrayList吧。List是一个接口,是Collection接口的一个子接口,是一个有序的集合。ArrayList是List的一个实现类,可以实现数组大小的可变,可以很方便的进行增加和删减数组内元素的操作。1
2017-12-28 15:00:35
11105
原创 最全爬虫方法代码
package 采集;import java.io.IOException;import java.net.HttpURLConnection;import java.net.SocketTimeoutException;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;impo
2017-12-27 16:08:35
2647
转载 dubbo学习教程
一、前言部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下。整理这篇文章差不多花了两天半时间,请尊重劳动成果,如转载请注明出处http://blog.csdn.net/hzzhoushaoyu/article/details/43273099二、什么是du
2017-12-22 11:09:21
772
原创 淘客链接转成正常淘宝链接JAVA代码实现
更新1:2018/1/15类似于 https://s.click.taobao.com/t?e=m%3D2%26s%3DshhycMgyX5YcQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67gtlG6lwPBS0UkCu4LW4fHWggE%2B81xYdaYgwvAJKzKRhR0QUH89hs6odoD3G8jExAxAqvUhwaPOiypAb
2017-12-20 16:29:38
14639
技术必备基础知识.pdf
2020-10-28
JAVA核心面试知识整理
2019-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅