java
文章平均质量分 56
胡说八道的潘老师
这个作者很懒,什么都没留下…
展开
-
java SE基础(URL访问网络资源)
/* 1。URL的构造方法*/ public URL(String spec){} //根据 String 表示形式创建 URL 对象 public URL(String protocol, String host, String file){} //根据指定的 protocol 名称、host 名称和原创 2016-03-15 21:35:54 · 715 阅读 · 0 评论 -
hashCode()与equals()
hashCode()和equals()方法用于判断两个对象是否相等,在HashSet的contains()方法add()方法、HashMap的contains()方法和put()方法等集合框架中广泛使用。 hashCode()和equals()方法在Object类中被定义,java中任何类都具有这两个方法。在新定义类时,若涉及到新定义类对象的比较,则需要重写这两个方法。如下命题成立命题1:两个原创 2017-04-06 21:58:03 · 245 阅读 · 0 评论 -
《程序员面试金典》
4.1 检查二叉树是否平衡代码实现// 获取二叉树的树高度,判断二叉树是否平衡class TreeNode { public int val = 0; public TreeNode left = null; public TreeNode right = null;}public class Solution { // 获取树高度,用递归的方法:左、右子树的最原创 2017-04-08 12:05:58 · 606 阅读 · 0 评论 -
JVM总结
概述:本文主要根据《深入理解java虚拟机》一书,对JVM的主要特性进行了归纳总结,内容涵盖JVM运行时内存区域的划分、垃圾回收的基本原理与算法、内存分配与回收的基本策略、虚拟机类加载机制、程序编译与代码优化、Java内存模型与线程、线程安全与锁优化等。第一部分 JVM运行时内存划分 Java虚拟机在执行Java程序时将所管理的内存划分为若干个不同区域:虚拟机栈(VM Stack)、本地方法栈(N原创 2017-04-09 22:14:51 · 699 阅读 · 0 评论 -
volatile关键字及其作用
概述:本文主要介绍Java语言中的volatile关键字,内容涵盖volatile的保证内存可见性、禁止指令重排等。原创 2017-03-24 16:37:42 · 24362 阅读 · 4 评论 -
Java并发(一)
概述:本文主要讲述Java并发中的常见问题,内容涵盖多线程的实现、线程安全、线程安全集合类、线程阀、线程池等内容。第一部分 分布式计算、并行计算、并发计算1.1 并行计算与分布式计算级别上。并行计算借助于并行算法与并行编程语言,实现进程级并行和线程级并行;分布式计算将任务分成小块分配到各个计算机上执行,属于计算机之间的并行。粒度上。并行计算中,处理器之间交互频繁,粒度细;分布式计算中,处理器之间原创 2017-04-22 22:38:30 · 582 阅读 · 0 评论 -
Java并发(三)——同步计数器
1 CountDownLatch同步计数器1.1 类的概述 倒计数门闩。在完成一组正在其它线程中执行的操作之前,它允许一个或多个线程一直等待。在计数器到达0之前,await方法会一直阻塞;之后,会释放所有等待线程,await的所有后续调用都将返回。1.2 主要方法CountDownLatch(int count) 构造一个用给定计数初始化的同步计数器void await() 使当前线程在计原创 2017-05-15 08:56:12 · 8138 阅读 · 0 评论 -
Java并发(二)——线程相关类与线程池
第六部分 线程相关类6.1 继承关系Executor接口-<--ExecutorService接口<--AbstractExecutorService抽象类<--ThreadPoolExecutor类6.2 Executor接口6.2.1 接口声明public interface Executor6.2.2 接口概述Executor是一个顶层接口,在它里面只声明了一个方法execute(Runnab原创 2017-04-24 00:36:35 · 504 阅读 · 0 评论 -
Java异常类解析
1 层次结构 Java异常层次结构如下图所示,所有的异常类都是从Throwable继承而来,下一层则分为两个结构,Error和Exception。 2 error异常和exception异常Error类层次描述了Java运行时系统的内部错误和资源耗尽错误,在java的虚拟机中发生,用户无需在程序中捕捉或者抛出,属于unchecked exception。Exception类异常主要分为两原创 2017-04-22 22:12:52 · 674 阅读 · 0 评论 -
java反射机制
摘要:本文主要介绍Java的反射机制,内容涵盖反射的基本概念、主要作用、相关类、主要API,以及反射的应用示例。1 关于反射1.1 基本概念 反射机制是在运行状态中,对于任意一个类或对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。1.2 主要作用反射机制主要提供了以下功能: 1. 在运行时判断任意一个对象所属的类; 2. 在原创 2017-05-16 13:05:01 · 291 阅读 · 0 评论 -
java中try-catch-finally返回值问题
关于Java中try-catch-finally语句块的使用规则及注意事项原创 2017-04-20 20:31:48 · 1761 阅读 · 0 评论 -
java Logger类和Apache slf4j
1 相关jar包 下载地址2 定义log4j.properties文件### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4原创 2017-08-07 23:17:47 · 1195 阅读 · 0 评论 -
java生成UUID
1 关于UUID的简介 UUID指通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。 UUID 的目的,是让分布式系统中的所有原创 2017-08-04 00:14:17 · 1242 阅读 · 0 评论 -
java读写Excel表格
摘要 该部分主要讲述了怎样通过Java语言读写Excel表格。从.csv文件中读取数据,以及将数据保存为.xls文件读取过程package read;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter原创 2017-08-15 23:26:11 · 901 阅读 · 0 评论 -
字典树的构建
摘要 该部分主要讲述基于Java语言构建字典树,包括字典树的剪枝与遍历操作。字典树原理不再赘述,代码实现部分如下实现部分工具类Tools.java,主要实现对大数据集的采样,以及对数据规模的统计package main;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStre原创 2017-08-15 23:46:27 · 1338 阅读 · 1 评论 -
一道谷歌编程题引发的思考
写在前面 今天做了谷歌的一道在线测试题,在理解题意的基础上,总算把程序编写完整,在提交后发现很诡异的现象:小的数值运行正确,大的数值运行错误。但是我确定,数值范围没有溢出! 没有溢出! 最终排查很久,终于发现错误。不得不说,这种错误头一次遇到,真的很诡异。题意 将梯形看作是仅有一对边平行的凸四边形。如果两条不平行的边相等, 则称为等腰梯形。 有一些长度不等的木棍,你需要挑出四根来构成一个等原创 2017-08-27 18:47:21 · 754 阅读 · 0 评论 -
java基础知识问答
线程与进程的区别归纳a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见 b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性 c.调度和切换:线程上下文切换比进程上下文切换要快得多创建线程有几种不同的方式?你喜欢哪一种?为什么?a.继承Thread类 b.实现Runn原创 2017-03-09 11:30:42 · 1146 阅读 · 0 评论 -
java中Properties类的操作
1.概述Properties 类表示一个持久的属性集,可保存在流中或从流中加载,属性列表中每个键及其对应值都是一个字符串;因为 Properties 继承于 Hashtable,所以可对 Properties对象应用put和putAll方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项;相反,应该使用 setProperty 方法。2.类的定义public c原创 2016-10-04 11:59:03 · 2145 阅读 · 0 评论 -
java代码执行顺序
java类中的代码执行顺序静态变量(静态代码块)->进入main方法->普通成员变量(类代码块)->构造方法。其中,静态变量或静态代码块按声明的先后顺序执行,普通成员变量或类代码块也按声明的先后顺序执行。下面的例子有清晰说明: 接下来是一个例子A.javapublic class A{ public static int a =print(1); public int aa=pr原创 2016-10-04 11:48:18 · 2565 阅读 · 0 评论 -
java SE基础(TCP Socket通信)
1。socket对象的两种初始化方法*/ /* 方法一 */ Socket socket = new Socket() //创建无参socket对象 SocketAddress socketaddress = new InetSocketAddress(String hostname , int port)//创建SocketAddress对象,实现 I原创 2016-03-15 21:43:39 · 675 阅读 · 0 评论 -
java SE基础(UDP通信)
1。java支持的UDP数据报通信需要DatagramPacket和DatagramSocket两个类的配合。DatagramPacket类将待传输数据封装成数据报包对象, 再由数据报套接字DatagramSocket类提供的send()和receiver()方法进行发送或接收操作。 2。DatagramPacket类:原创 2016-03-15 21:48:42 · 537 阅读 · 0 评论 -
java SE基础(Collection接口概述)
Collection接口相关集成关系如下图1。关于可迭代接口(Iterable) 可迭代接口仅包含一个方法,返回一个在一组T类型元素上进行迭代的迭代器:public abstract Iterator iterator();迭代器Iterator接口的方法声明如下:public interface Iterator{ publi原创 2016-03-29 22:06:26 · 1144 阅读 · 2 评论 -
java SE基础(Map接口及其实现)
map接口的继承关系如下图所示1。Map接口 (1)Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容 (2)某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类。 (3)将可变对象用作映射键时必须格外小心。如果以影响 equals 比较的方式更改了对象原创 2016-03-30 23:10:17 · 603 阅读 · 0 评论 -
java SE基础(关于初始化代码执行顺序与变长参数的方法)
1。在类声明中,可以包含任意数量的代码块。不管是哪个方法构造了一个对象,先执行静态代码块,再执行类代码块,然后执行构造方法。2。在传入方法中的参数个数不固定时,可以使用变长参数,格式为: public void method(String arg1, Object...args) 其中,变长参数必须是最后一个参数3。例如public class Parm {原创 2016-04-01 09:39:20 · 610 阅读 · 0 评论 -
Ubuntu系统中jdk的安装及配置方法
一、jdk的安装下载jdk的tar包,假设tar包所在的目录为/home/username/Download,使用如下命令对tar包进行解压tar -zxf /home/username/Download/jdk-8u77-linux-x64.tar.gz解压完毕后,将解压后的包移动到安装目录,假设为/home/username/developmv jdk1.8.0.7 /home/u原创 2016-04-03 15:28:32 · 1234 阅读 · 0 评论 -
关于java的JDK环境变量设置方法及相关问题解决方案
下载并安装JDK,注意安装JDK过程中会出现选择安装JRE选项,一并安装。其中,建议将JDK和JRE安装在不同目录下。安装完成后,将JDK的bin路径添加到系统环境变量path路径下,将JDK的lib路径添加到classpath路径下。注意:路径名以“\”结尾,不然会报错,即path ....bin\classpath ...lib\配置完成后,在命令原创 2016-03-22 23:43:37 · 537 阅读 · 0 评论 -
java SE基础整理(面向对象)
一、Application和Applet的区别 Application是java的应用程序,后缀名为.java的应用程序,后缀名为.java Applet只能嵌入web页面运行,不能单独运行 二、数据类型的分类 | |--基本类型--|--数值类型(包括字符类型char) | |--布尔类型原创 2016-03-12 09:52:36 · 446 阅读 · 0 评论 -
java SE基础(多线程)
Runnable接口与Thread类创建线程的两种方法用户线程与守护线程线程同步机制public class BufferLock{ private int value = 0; private boolean isEmpty = true; public BufferLock(){ //构造方法 this.value = 0; this.原创 2016-03-12 11:38:23 · 573 阅读 · 0 评论 -
java SE基础(文件和流)
java文件与流的操作原创 2016-03-12 12:03:36 · 552 阅读 · 0 评论 -
java SE多线程(关于runnable接口实现多线程)
创建多线程时,如果使用同一个runnable对象,则多个线程共享一个runnable资源public class MyThread implements Runnable { int i; @Override public void run() { while(true){ try { Thread.sleep((long)Math.random()*1000);原创 2016-03-12 16:57:53 · 450 阅读 · 0 评论 -
java SE基础(Comparable接口和Comparator接口)
1。Comparable(可比较接口)(1)此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法(2)实现此接口的对象可以通过Collections.sort和Arrays.sort进行自动排序,也可以用作有序映射中的键或有序集合中的元素,无需指定比较器(3)接口声明*/ pub原创 2016-03-24 21:58:36 · 547 阅读 · 1 评论 -
hadoop平台搭建(2)--jdk的安装及配置
摘要:本文主要讲述Linux环境下搭建hadoop平台过程中jdk安装配置环节,由于jdk安装配置并不限于hadoop平台的搭建,所以本部分独立成一节,jdk配置完毕的可以略过本节。环境说明:文章延续hadoop平台搭建(1)中的步骤,采用Ubuntu15.10操作系统,Ubuntu其他版本操作系统的操作类似。Linux其他系列操作系统适当做相应调整。1安装jdk 从sun官网下载jdk原创 2016-04-16 21:46:45 · 1836 阅读 · 0 评论 -
关于命令行下java程序的jar打包与运行
关于命令行下java程序的jar打包与运行一、基本环境jdk1.7原创 2016-07-06 20:43:13 · 885 阅读 · 0 评论 -
快速排序算法归纳总结-java
待补充原创 2017-08-29 15:51:12 · 473 阅读 · 0 评论