自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python系列教程(入门系列已写完)

IT 行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰,但是,我们要清楚:淘汰的永远只是那些初级水平的从业者,过硬技术的从业者永远都是稀缺的。因此对于学习,我们还是要踏踏实实的。自学 Python ,也是一样,不要一开始因为头脑发热就不停地收藏各种资料网站,购买各种书籍,下载了大量的教学视频,过了几天,学习的热情开始褪去,再过几个星期,终于完成了学习课程 —— 《...

2019-12-09 14:44:29 573

原创 Python 代码规范

前言Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯目录Python代码规范一、简明概述1、编码如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标识2、代码格式2.1、缩进统一使用 4 个空格进行缩进2.2、行宽...

2019-12-09 14:17:19 416

原创 JAVA NIO知识点总结——网络阻塞IO与非阻塞IO

传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。    Java NIO 是非阻塞模式的。当线程从某通道进行读写数据时

2018-01-09 17:22:58 4115

原创 2017全年Java书单整理

希望书单能在你想要进一步打怪升级的路上,给予些许帮助建议先收藏本书单,认真啃完一本再买下一本,扎实走完每一步部分书籍关联相关博客和微信公众号,让你更嗨皮如果对你略有帮助,烦请分享给你的基友与君共勉,若有合适的书籍,请一定告诉我,谢谢分类困难因而没分。大体顺序,编程开发 => 数据库 => 架构运维 => 算法拒绝盗版,从你我做起书籍列表《Effective Java 中文版》

2018-01-09 13:24:51 1633 2

原创 关于Java的反射机制,你需要理解这些...

反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。【翻译于 官方文档】本篇将从以下几个方面讲述反射的知识:class 的使用方法的反射构造函数的反射成员变量的反射一、什么是class类在面向对象的世界里,万物皆对象。类是对

2017-12-15 16:32:45 862 1

原创 最全面的 Spring 学习笔记

Spring致力于提供一种方法管理你的业务对象。在大量Java EE的应用中,随处可见Spring。今天我将简单的介绍一下Spring这个框架。本文适合读者:想学Spring的Java开发者刚用Spring不久的人Why为什么要使用Spring?Spring主要两个有功能为我们的业务对象管理提供了非常便捷的方法:DI(Depend

2017-12-15 11:32:47 2654 2

原创 Java程序员应当知道的10个面向对象设计原则

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平

2017-12-14 18:53:56 1098 1

原创 使用Java API的5个技巧

本文介绍了一些关于Java API安全和性能方面的简单易用的技巧,其中包括保证API Key安全和开发Web Service方面中在框架方面选择的一些建议。程序员都喜欢使用API!例如为app应用构建API或作为微服务架构体系的一部分。当然,使用API的前提是能让你的工作变得更轻松。为了简化开发和提高工作效率所作出的努力,有时也意味着需要寻找新的类库或者过程(或者减少过程)。对于很多开发团队来说,对

2017-12-11 11:20:42 1183 1

原创 推荐几个自己写的Java后端相关的范例项目

推荐几个自己写的范例项目 这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处是简单易懂,在架构一个新的项目的时候可以直接当成脚手架来用,方便快速开发,另外项目中涉及到以及未来可能涉及到的知识点都会不断完善。三个项目是互相发展而来的,依次为(不断完善中):一、优雅的SSM架构(

2017-12-08 10:22:49 4144 2

原创 Java中的String为什么是不可变的?—String源码分析

什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java

2017-12-07 10:39:32 3853 4

原创 Java反射机制详解

动态语言动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。(引自: 百度百科)var execString = "alert(Math.floor(Math.random()*10));"

2017-12-06 15:52:41 475 1

原创 Java HashMap的工作原理

面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要用Country对象

2017-12-06 14:38:07 956 2

原创 jvm知识点总览

在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高的人。比如,你剑法再厉害,一剑刺过来,别人一掌打断你的剑,你还怎么使剑法,你一掌打到一个武功高的人身上,那人没什么事,却把你震伤了,你还怎么打

2017-12-06 12:03:10 472

原创 Java进阶之路——从初级程序员到架构师,从小工到专家

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题。希望这篇文章会是你看到过的最全面最权威的回答。一: 编程基础不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的。下面几篇文章从思想到实现,为你梳理出常

2017-12-06 11:08:05 659

原创 Java后端2017书单推荐

前言对于程序员来说,个人感觉最佳学习方式是看书,视频花费时间太长,而博客则不够系统。初学相关领域最好的方式就是找到一本经典的好书,然后啃完它。 经常有网友要我推荐一些Java方面的书籍,这次博主就整理下网上现有的推荐,再加上自己这几年看的书籍,统一开一篇来介绍下。正文如果你也有写博客,但是不知道从何入手,那博主推荐就是从读书下手,然后按章节总结写成博客。这样知识不仅有巩固,还有产出,方便以后自己复

2017-12-06 10:49:09 934

原创 Java进阶面试问题列表

面向对象编程的基本理念与核心设计思想解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling)。继承(Inheritance)与聚合(Aggregation)的区别在哪里。你是如何理解干净的代码(Clean Code)与技术负债(Technical Debt)的。描述下常用的重构技巧。阐述下 SOLID原则。其他的

2017-12-06 10:08:43 1906

原创 8张图理解Java

一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。1、字符串不变性下面这张图展示了这段代码做了什么String s = "abcd";s = s.concat("ef");2、equals()方法、hashCode()方法的区别HashCode被设计用来提高性能。equals()方法与hashCode()方法的区别

2017-12-06 09:30:50 552

原创 Java虚拟机工作原理

首先我想从宏观上介绍一下Java虚拟机的工作原理。从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个

2017-12-06 09:15:54 489

原创 Java回调机制解读

模块间调用在一个应用系统中,无论使用何种语言开发,必然存在模块之间的调用,调用的方式分为几种:(1)同步调用同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等待b()方法执行完毕,a()方法继续往下走。这种调用方式适用于方法b()执行时间不长的情况,因为b()方法执行时间一长或者直接阻塞的话,a()方法的余下代码是无法执行下去的,

2017-12-05 14:52:08 680

原创 后端开挂:3行代码写出8个接口!

肯定有不少人会想:这怎么可能呢?就算用几乎零配置的SpringBoot,写一个最简单的接口也得有3行代码啊! @RequestMapping("test/{request}") public String test(@PathVariable String request) { return request + ": Hello World";

2017-12-05 13:26:56 1427

原创 微信公众号批量爬取——Java版

最近需要爬取微信公众号的文章信息。在网上找了找发现微信公众号爬取的难点在于公众号文章链接在pc端是打不开的,要用微信的自带浏览器(拿到微信客户端补充的参数,才可以在其它平台打开),这就给爬虫程序造成很大困扰。后来在知乎上看到了一位大牛用php写的微信公众号爬取程序,就直接按大佬的思路整了整搞成java的了。改造途中遇到蛮多细节问题,拿出来分享一下。附上大牛文章链接:https://zhuanl

2017-12-05 10:49:30 6973 2

原创 探究 Java 虚拟机栈

前言Java 虚拟机的内存模型分为两部分:一部分是线程共享的,包括 Java 堆和方法区;另一部分是线程私有的,包括虚拟机栈和本地方法栈,以及程序计数器这一小部分内存。今天我就 Java 虚拟机栈做一些比较浅的探究。熟悉 Java 的同学应该都知道了,JVM 是基于栈的。但是这个“栈” 具体指的是什么?难道就是虚拟机栈?想要回答这个问题我们先要从虚拟机栈的结构谈起。虚拟机栈何为虚拟机栈虚拟机栈的栈元

2017-12-05 10:11:17 413

原创 各大公司Java后端开发面试题总结

ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量副

2017-12-05 09:26:47 1090

原创 深入理解Java垃圾回收机制

一、垃圾回收机制的意义   Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。   ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数

2017-12-04 16:19:23 472

原创 Java IO流学习总结

Java流操作有关的类或接口:Java流类图结构:   流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 - 根据处理数据类型的不同分为:字符流和字节流 - 根据数据流向不同分为:输入流和输出流  字符流和字节流 字符流的由来:

2017-12-04 13:52:50 589 2

原创 Java虚拟机体系结构

JAVA虚拟机的生命周期  一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。  Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。

2017-12-04 13:15:41 363

原创 你真的会写Java吗?

自2013年毕业后,今年已经是我工作的第4个年头了,总在做java相关的工作,终于有时间坐下来,写一篇关于java写法的一篇文章,来探讨一下如果你真的是一个java程序员,那你真的会写java吗?

2017-12-03 14:21:55 4588 4

原创 阿里巴巴Java开发手册评述

2016年底的时候阿里巴巴公开了其在内部使用的Java编程规范。

2017-12-03 10:07:45 1893

原创 Java I/O 操作及优化建议

Java I/OI/O,即 Input/Output(输入/输出) 的简称。就 I/O 而言,概念上有 5 种模型:blocking I/O,nonblocking I/O,I/O multiplexing (select and poll),signal driven I/O (SIGIO),asynchronous I/O (the POSIX aio_functions)。不同的操作系统对上述

2017-12-01 16:34:40 1003

原创 20个高级Java面试题汇总

这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。

2017-12-01 16:11:00 899

原创 Java 征途:行者的地图

前段时间应因缘梳理了下自己的 Java知识体系, 成文一篇望能帮到即将走进或正在 Java 世界跋涉的程序员们。

2017-12-01 15:43:47 382

原创 8张图理解Java

一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。1、字符串不变性下面这张图展示了这段代码做了什么String s = "abcd";s = s.concat("ef");2、equals()方法、hashCode()方法的区别HashCode被设计用来提高性能。equals()方法与hashCod

2017-11-30 15:04:23 773

原创 40个Java集合面试问题和答案

1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如

2017-11-28 10:46:25 1045

原创 Java高效读取大文件

1、概述本教程将演示如何用Java高效地读取大文件。2、在内存中读取读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path));

2017-11-26 11:54:16 5417

原创 《阿里巴巴Java工作手册》学习笔记

最近浏览了一下阿里巴巴的Java开发手册,感觉内容确实非常的赞,发现了不少自己在编程中的误区,因此决定通过成文牢固掌握,文中将选取个人认为比较重要的部分进行描述与分析。”愿站在巨人的肩膀上,码出高效,码出质量“。

2017-11-26 11:44:42 1121 1

原创 Java程序员们最常犯的10个错误

1.将数组转化为列表将数组转化为一个列表时,程序员们经常这样做:ListString> list = Arrays.asList(arr);Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arrays.ArrayList类有set()

2017-11-24 16:47:53 707

原创 Java打飞机小游戏(附完整源码)

写在前面技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习。java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐。代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习。完整代码敌飞机import java.util.Random; 敌飞机: 是飞行物,也是敌人public class Airpla

2017-11-03 19:32:53 5618 8

原创 15个顶级Java多线程面试题及答案

在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面。1. 现在有

2017-10-09 16:01:48 382

原创 20非常有用的Java程序片段

下面是20个非常有用的Java程序片段,希望能对你有用。1. 字符串有整型的相互转换String a = String.valueOf(2);   //integer to numeric string   int i = Integer.parseInt(a); //numeric string to an int  2. 向文件末尾添加内容BufferedWriter

2017-09-27 17:33:35 472

原创 假如时光倒流,我会这么学习Java

回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路。入门我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。后来我就看《Thinking in Java》 ,《 Java 核心技术 》, 感觉也不吃力。

2017-09-27 15:03:34 518 1

《阿里巴巴Java工作手册》学习笔记

最近浏览了一下阿里巴巴的Java开发手册,感觉内容确实非常的赞,发现了不少自己在编程中的误区,因此决定通过成文牢固掌握,文中将选取个人认为比较重要的部分进行描述与分析。”愿站在巨人的肩膀上,码出高效,码出质量“。

2017-12-03

空空如也

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

TA关注的人

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