Language
tterminator
let the code say
展开
-
python名词总结
一、PSF1.名词解释python software foundation: 非盈利组织,拥有Python的知识产权,并资助Python语言的发展,以推广、保护、改进Python语言为目标。官方解释:The Python Software Foundation (PSF) is a 501©(3) non-profit corporation that holds the intellec...原创 2019-04-05 22:09:17 · 902 阅读 · 0 评论 -
Java工程师成神之路
来自:HollisChuang's Blog链接:http://www.hollischuang.com/archives/489仅供学习使用~一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133http://ifeve.c转载 2015-12-22 19:31:16 · 611 阅读 · 0 评论 -
Java内存模型:线程并发下的对象逸出
Java内存模型:线程并发下的对象逸出原因及解决方案:原创 2016-01-05 11:02:12 · 897 阅读 · 0 评论 -
Java泛型通配符解惑
仅供学习使用,原文链接http://www.linuxidc.com/Linux/2013-10/90928.htm引言下文中需要用到的类定义:Anilmal类public class Animal { private String name; public Animal(String name) { this.name = name; } public转载 2016-02-24 15:34:02 · 627 阅读 · 0 评论 -
Java properties存储与读取遍历
一、向Properties中添加属性public Object setProperty(String key, String value)调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。强制要求为属性的键和值使用字符串。返回值是Hashtable 调用 put 的结果。参数:ke原创 2016-03-02 16:33:19 · 6349 阅读 · 0 评论 -
Java并发之 CAS + Thread.join / CountDownLatch 方式实现线程安全
一、问题描述在多线程开发中,由并发引起的问题很不容易发觉,这里分别实现了线程安全和非线程安全的两种计数器。可以明显的看出多线程并发引发的数据丢失问题。二、问题分析这里非线程安全的计数器的起因是计数器中的count++;操作是非原子操作。为解决count++;非原子操作问题,这里模拟了硬件级解决方案CAS(Compare And Swap,比较并交换),是一种乐观锁方案。 CAS有3个操作数,原创 2016-04-11 14:11:46 · 1250 阅读 · 0 评论 -
笔记:Java二进制Class文件结构<未完待续>
一、class文件结构 类型 名称 数量 u4 magic 1 u2 minor_version 1 u2 major_version 1 u2 constant_pool_count 1 cp_info constant_pool constant_pool_count - 1 u2 access_flags 1原创 2016-04-17 16:55:02 · 654 阅读 · 0 评论 -
Java Thread 状态转换
一、线程状态转换图状态图转换如下: 状态说明 New:创建状态,线程创建后未启动时的状态。Running:运行状态,线程启动并获得cpu时间片(在运行状态之前还有一个就绪状态,是指其它运行资源都就绪,只要获得cpu时间片后即可运行的状态)。Waiting:无限期等待状态,处于此状态的线程不会被分配cpu时间片,需要等待被其它线程唤醒。Timed Waiting:限期等待状态,处于此状态的线原创 2016-04-18 16:48:45 · 1094 阅读 · 1 评论 -
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
转载自:http://www.cnblogs.com/dolphin0520/p/3920385.html 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须wait()、notify()和notifyAll()是Object类中的方法:释放对临界资源(即队列转载 2016-04-18 18:18:52 · 497 阅读 · 0 评论 -
Java线程与内存模型
一、Java线程与内存的交互关系二、Java线程与内存交互过程说明 Java内存模型的主要目的是定义程序运行中各个变量的访问规则,也即JVM虚拟机将变量存储到内存和从内存读取到变量的底层细节。 这里所说的变量不包括局部变量和传递参数,因为它们均为线程私有变量,不会在线程间共享。 这里所说的变量包括实例变量、类变量等线程共享的变量。1.Java内存模型规定所有的变量都存储在主原创 2016-04-20 13:53:48 · 465 阅读 · 0 评论 -
头插法创建&原地逆置单链表 【Java】
一、头插法创建&原地逆置单链表public class RotateList { public static void main(String[] args) { int [] values = new int[]{1,2,3,4}; Node head = constructList(values); printResult("链表创建后结构:原创 2016-04-23 18:19:02 · 2097 阅读 · 0 评论 -
JAVA reflect (反射) 分析类结构
一、数据准备Java反射用到的Human类package ReflectAnalysis;public class Human { public String name; private int age; public Human(String name, int age){ this.name = name; this.setAge(age);原创 2016-04-26 13:25:22 · 1267 阅读 · 0 评论 -
synchronized代码块调度
一、结论被synchronized关键字修饰的代码块在执行过程中也可能被调度,也即被sysnchronized修饰的代码块并不是执行完毕后才会被调度。二、结论验证1.用于测试被synchronized修饰的两条语句是否执行完毕后才被调度的runnable.package synchronizedSwitch;import java.util.concurrent.atomic.AtomicInteg原创 2016-05-08 21:57:38 · 639 阅读 · 1 评论 -
Java synchronized详解
仅供学习使用,转载自链接一、使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。 在程序中我们使用了一个简化版本的Account类,代转载 2016-05-10 10:40:40 · 617 阅读 · 1 评论 -
JAVA如何取得HTTP请求头
在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段;可以利用Java语言根据需要添加自定义的HTTP头字段,而不必拘泥于标准HTTP定义的头字段。代码如下:public class TestURL { public static void main(String[] args) { String destURLStr=原创 2015-03-31 23:54:14 · 13247 阅读 · 0 评论 -
Java环境变量说开去
1、用Java开发的前提就是安装完jdk后并进行正确的环境变量设置,很多人在设置环境变量时都喜欢新建或设置三个变量:JAVA_HOME、PATH、CLASSPATH;其实经过实践证明,只需要正确设置前两个环境变量JAVA_HOME和PATH就可以了,第三个不仅没有必要设置,而且容易出错(如网上有些设置值为.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.原创 2015-02-25 21:47:50 · 489 阅读 · 0 评论 -
Java远程调试 Eclipse/IDEA
一、模拟客户端源码package testR;import java.io.BufferedWriter;import java.io.IOException;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.Socket;public class TestMain { publi原创 2016-08-06 12:08:41 · 1808 阅读 · 0 评论 -
Java虚拟机性能监控及应用故障处理工具笔记
一、jpsjps主要用于获取Java虚拟机的进程号,可配合以下参数使用: -l:输出main函数所在的主类全名,如果执行的是jar包,则输出jar包的路径; -m:输出jvm进程启动时传递给主类main函数的参数; -v:输出jvm进程启动时所传的配置参数;二、jinfo查看虚拟机启动时的配置参数,与jps -v相比,可以看到更多内容:例如通过参数-sysprops看到System.getP原创 2016-12-15 23:45:05 · 561 阅读 · 0 评论 -
Java持续学习
最近一直在考虑怎么样更好的使用、学习和研究Java,在网上也搜索了一些资料,这里做个笔记和总结,为今后的持续学习提供一个对比,毕竟以人为镜可以明得失。一、JDK类库/著名开源类库在使用Java开发的过程中,恐怕打交道最多的就是jdk中的类库了,个人感觉对jdk类库的熟悉程度,不仅体现一个程序员的Java基础,也一定程度上反映了一个程序员所处的档次(是中级还是高级)。1.必须掌握和阅读源码的类库jav原创 2017-04-23 00:32:16 · 776 阅读 · 0 评论 -
日志记录异常堆栈详细信息
一、背景在记录日志时,使用e.getMessage()获取异常信息时,经常会得到异常信息为null的情形,这对问题定位不仅起不到辅助作用,还会对问题排查造成困扰。如果能找到一种记录异常信息的堆栈方式,把e.printStackTrace()信息都打印出来,在问题定位时就比较方便了,通过本文介绍的方式,即可实现记录异常的详细堆栈信息。二、详细代码public class jdkTest { p原创 2017-05-14 10:54:57 · 13013 阅读 · 1 评论 -
Java 数组转换为list和set
Java 数组转换为list和set:HashSet<String> codeSet= new HashSet<String>(Arrays.asList(new String[]{"150500", "150501", "150600", "150700", "150701", "150702"}));相关博文链接 java.util包数据结构互相转换原创 2017-06-16 23:08:43 · 399 阅读 · 0 评论 -
eclipse 安装 findbug 插件
版本eclipse:Kepler Service Release 2jdk:1.8.0_66 jdk版本过低可能导致findbug插件安装完后不显示。安装步骤help>install new software,输入http://findbugs.cs.umd.edu/eclipse/然后一路next,重启eclipse即可。原创 2017-06-16 22:36:38 · 697 阅读 · 0 评论 -
JVM虚拟机参数配置详解(官方文档)
一、虚拟机参数设置文档官方文档http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.htmlhttp://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html非官方文档http://www.jvmer.com/jvm-xx-%E5%8F原创 2017-01-11 13:45:54 · 13484 阅读 · 2 评论 -
Java Instrument动态修改字节码入门-添加方法耗时监控
平常在统计方法执行的耗时时长时,一般都是在方法的开头和结尾通过System.currentTimeMillis()拿到时间,然后做差值,计算耗时,这样不得不在每个方法中都重复这样的操作,现在使用Instrument,可以优雅的实现该功能。一、编写Agent类package com.jdktest.instrument;import java.lang.instrument.ClassFileTra原创 2017-01-12 20:48:28 · 12179 阅读 · 0 评论 -
Python MySQL读出数据后保存到文件时中文乱码解决
一、源文件开头指定文件编码# coding=utf-8二、载入sysimport sysreload(sys) sys.setdefaultencoding('utf8')三、数据库连接时设置编码格式PooledDB(MySQLdb, host=config.MYSQL_HOST, user=config.MYSQL_U原创 2016-12-20 23:32:44 · 2555 阅读 · 0 评论 -
win protobuffer使用简易教程
一、protocol buffer 下载protocol buffer下载链接 在该页面中请选择下图方框中的链接,这个是win平台下的预编译版本,不然还要自己下载源码编译。 二、编译proto文件时注意事项命令格式 protoc –java_out=./ *.proto,可以先执行命令”protoc -h”查看命令语法。编译的Java源代码输出路径写对,尤其是win平台以\为分隔符。编译时原创 2016-12-20 23:12:22 · 5223 阅读 · 1 评论 -
Java BitSet笔记
一、测试代码public class BitSetTest { public static void main(String[] args) { BitSet bitsetOne = generateBitSet(5);// bitsetOne.set(6);//取消注释后这里不会报错,为什么?难道是因为默认的size大小是64位? printResult(bitsetOne)原创 2016-02-28 11:34:49 · 577 阅读 · 0 评论 -
利用反射获取并使用自定义对象
新建一个包:其中包含两个类,helloworld.java和staticClass.java。代码如下:helloworld.javapackage test;public class helloworld {public static void main(String[] args) { try {/* test.staticClass我们自己定义的类,注意一:这里必须使用权原创 2013-12-06 15:38:45 · 1218 阅读 · 0 评论 -
Java序列化
此时必须注意的是,当重新读取被保存的Person对象时,并没有调用Person的任何构造器,看起来就像是直接使用字节将Person对象还原出来的。当Person对象被保存到person.out文件中之后,我们可以在其它地方去读取该文件以还原对象,但必须确保该读取程序的CLASSPATH中包含有Person.class(哪怕在读取Person对象时并没有显示地使用Person类,如上例所示)原创 2014-10-30 12:36:33 · 520 阅读 · 0 评论 -
Eclipse console返回null
一、代码测试import java.io.Console;import java.util.Scanner;public class HelloWorld { public static void main(String[] args) { Console console = System.console(); if(console != null){原创 2016-05-14 21:58:49 · 1974 阅读 · 0 评论 -
Java并发编程之java.util.concurrent包UML结构
一、java.util.concurrent包UML结构原创 2016-05-28 11:42:14 · 1780 阅读 · 0 评论 -
Java日期字符串排序
一、示例代码class test { public static void main (String[] args) throws java.lang.Exception { TreeSet<String> dates = new TreeSet<String>(); dates.add("2016-10-20"); dates.a原创 2016-12-01 15:35:08 · 6856 阅读 · 3 评论 -
Java查看当前类执行过程中加载的所有类
有时候需要查看在当前类执行的过程中,都载入了哪些类。一、自定义的需要载入的类public class Persion implements Serializable{ String name; int age; public Persion(String name, int age){ this.name = name; this.age =原创 2016-12-07 16:38:14 · 7033 阅读 · 1 评论 -
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4: ordinal not in range(128)
Python在处理中文编码时经常会出现乱码,并报如标题那样的错误,这时只要在代码起始处加入如下代码即可解决:import sysreload(sys)sys.setdefaultencoding( "utf-8" )原创 2016-12-02 13:29:09 · 3352 阅读 · 0 评论 -
Eclipse Python开发环境配置(PyDev插件安装)
一、版本说明本博文安装成功的版本如下: 1. Eclipse:Kepler(4.3.2) 2. JDK:7 3. PyDev:4.5.5 在安装PyDev插件时,其版本是要和Eclipse和JDK 版本适配的,否则会出现PyDev安装完成后,在Eclipse中无法找到的情况。PyDev适配版本要求详见PyDev发行说明,如下示例: 在网上搜索的可行版本组合: jdk原创 2016-05-13 14:54:34 · 927 阅读 · 0 评论 -
10万行以下源码阅读推荐
转载自https://www.zhihu.com/question/26500518/answer/37141453C强烈推荐lua,代码写的非常漂亮,需要vm的一些背景知识,一时半会读不完,好在很多网友写了代码分析攻略。redis,beanstalkd 都非常清晰。Javajdk的并发包clojure早期核心代码也是java的netty也不错C++protocol buffer代转载 2016-08-09 15:11:10 · 957 阅读 · 0 评论 -
Mac Intellij IDEA修改maven配置
Intellij IDEA可以单独给每一个工程分别设置maven配置。具体操作: IntelliJ IDEA—>Preferences—>搜索maven原创 2016-09-10 13:47:02 · 13541 阅读 · 0 评论 -
protoc编译proto文件之Java源码结构分析一(addr.proto)
一、addr.protooption java_package = "com.test.protocol";option java_outer_classname = "AddressProto";message Address { optional string province = 1; optional string mayor = 2;}二、AddressProto.j原创 2016-07-30 12:38:29 · 2574 阅读 · 0 评论 -
protoc编译proto文件之Java源码结构分析四(编译proto原型文件)
一、protoc安装参考博文mac下hadoop 2.6.0编译native library。二、编写proto原型文件addr.proto option java_package = "com.test.protocol"; option java_outer_classname = "AddressProto"; message Address { optional string p原创 2016-07-30 17:45:33 · 939 阅读 · 0 评论 -
protoc编译proto文件之Java源码结构分析三(示例Demo)
一、示例代码package java_protos_main;import com.test.protocol.AddressProto;import com.test.protocol.PersonProto;/** * Created by junwei8 on 16/7/30. */public class ProtobufTest { public static void ma原创 2016-07-30 17:26:44 · 1735 阅读 · 1 评论