2014-10-27 码农明明桑
目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。 与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见。 more 1.1 术语说明 在本文档中,除非另有说明: 术语class可表示一个普通类,枚举类,接口或是annotation类型(@interface) 术语comment只用来指代 继续阅读 »
2016-05-11 Eric Wang
问题来源 一般来说,一个大型的项目都会有一些依赖的JAR包(Java归档,英语:Java ARchive),而在将项目部署到服务器的过程中,如果没有持续集成环境的话,也就是说服务器不支持在线编译及打包,那么需要自己上传依赖的JAR包,然而可能服务器上已经存在了该项目所依赖的JAR包(比如项目修复BUG,重新打包上传,而依赖不变或者版本升级,修改方法等),无需再次上传所依赖的JAR包,此时只需将该项目单独打包,在运行的时候指定CLASSPATH即可。 在将JAR包部署到服务器上之后,设置CLASSPATH环境变量,运行java -jar ...命令出现ClassNotFoundException异常。之后又试用了诸多其它参数设置C 继续阅读 »
2017-05-15 kk
先说说转Java的事 我实习回来没几天, @佛爷 和 @子健 就找我谈换技术栈,我当时还挺郁闷的。 刚转 Python 不到两年,而且 Python 本身就很适合小团队,为啥要换呢? 聊完之后我明白了,关键是 Java “方便找工作”。 @子健 也提到,他在阿里实习生群里统计了一下: 总共两百多人,三十多个前端,七八十个 Java,一百多个算法。Python 在国内还是太小众了, 工作岗位太少,大公司用 Python 也只是做运维之类的工作。 大公司用的后端语言主要还是 Java 和 C++,笔试面试除了考算法,主要也就考这两门语言, 毕业后想去 BAT 的话,转 Java 有很大优势。 继续阅读 »
2016-08-24 craneyuan
Java访问修饰符 |访问修饰符|作用范围| |---|---| |public| 完全开发| |private|只能本类访问| |protected|同包及子类访问| |default(无修饰符时)|同包访问| Java用于类的修饰符(2个)和限定符(2个) |访问修饰符|作用范围| |---|---| |public| 完全开发| |default(无) |同包访问| 注意:内部类可以拥有更多的访问修饰符 more |限定符|描述| |---|---| |abstract|指定为抽象类| |final|指定为最终类,不可被继承| Java用于成员变量的修饰符 public protected private 继续阅读 »
2014-07-21 veryyoung
(1)ClassLoader基本概念   与C或C++编写的程序不同,Java程序并不是一个可执行文件,而是由许多独立的类文件组成的,每一个文件对应一个Java类。 此外,这些类文件并非全部装入内存,而是根据程序需要逐渐载入。 ClassLoader是JVM实现的一部分,ClassLoader包括bootstrapclassloader(启动类加载器),ClassLoader在JVM运行的时候加载Java核心的API,以满足Java程序最基本的需求,其中就包括用户定义的ClassLoader。 这里所谓的用户定义,是指通过Java程序实现的两个ClassLoader:一个是ExtClassLoader,它的作用是用来加载Ja 继续阅读 »
2018-07-23 LEo
1)如果系统已经安装java,通过以下方式设置java相关环境变量: $ ls -lrt /usr/bin/java lrwxrwxrwx. 1 root root 22 Mar 20 14:49 /usr/bin/java -> /etc/alternatives/java $ ls -lrt /etc/alternatives/java lrwxrwxrwx. 1 root root 73 Mar 20 14:49 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java 继续阅读 »
2016-04-18 blademainer
Why 读ConcurrentHashMap的时候,我们遇到的一个很大的概念就是Segment(java8之后只有在调用writeObject方法的方法的时候才会用到segment),该类继承了ReentrantLock,用于实现分段锁(乐观锁)。处于心痒痒的目的,我也尝试写了个简陋版的分段锁。 How 该Demo实现的比较简单:根据key获取或者创建Lock(获取锁的时候使用double check),然后使用该锁来同步put或者read(ConcurrentHashMap的读操作使用的volatile,这里不深入)。不足之处还请指正~ What java实现: github more ```java package 继续阅读 »
2015-04-10 Eric Wang
volatile概述 volatile关键字是一个类型修饰符,被设计用来修饰被不同线程访问和修改的变量,在JVM1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。 在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。 要解决这个问题,需要把变量声明为volatile(不稳定的),以后用到该变量都会到主存中进行存取,一般多任务环境下各任务间共享 继续阅读 »
2017-06-08 Renfei Yu
此文章旨在帮助java开发者快速了解并使用Go. 最开始我们引入一些java开发者容易熟知的特性,然后在给出一些关于go语言构建模块的详细解释,最后给出一个在java语言中没有直接对应的结构的例子 概述 原文链接:Go for Java programmers 继续阅读 »
2016-05-15 Lanffy
在服务请求中,通过HTTP的方式发送POST或者GET是最常见的请求方式。下面介绍JAVA中常用的POST、GET请求方式。 POST 实现代码 java public static void sendMessage(String url, String message) { try { HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); conn.setDoOutput(true); //表示只写数据 conn.setRequestProperty("Content-Ty 继续阅读 »