Java
文章平均质量分 65
Bart_G
Life -> Code
展开
-
Integer.parseInt(String s, int radix)的用法
源自JDK API文档 1.6java.lang 类 Integerjava.lang.Object java.lang.Number java.lang.Integer形式static int parseInt(String s, int radix) ;//使用第二个参数指定的基数,将字符串参数解析为有符号的整数。表示意义该函数表示把被操作数转化为十原创 2016-08-08 20:08:31 · 1445 阅读 · 0 评论 -
java并发(四)CountDownLatch闭锁
CountDownLatchJava 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作 之前,它允许一个或多个线程一直等待。闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活 动直到其他活动都完成才继续执行: 确保某个计算在其需要的所有资源原创 2017-05-01 17:17:36 · 518 阅读 · 0 评论 -
java并发(五)Callable接口
传建一个线程有四种方式: 1. 创建Thread 2. 创建类实现Runnable,然后new Thread(new Runnable()); 3. 创建类实现Callable,然后new Thread(new FutureTask(new Callable())); 4. 线程池Callable接口创建一个线程创建一个类实现Callable接口在call()方法class MyCallab原创 2017-05-01 17:48:21 · 257 阅读 · 0 评论 -
Java并发(六)Lock锁
简介在 Java 5.0 之前,协调共享对象的访问时可以使用的机 制只有synchronized 和volatile 。Java 5.0 后增加了一些 新的机制,但并不是一种替代内置锁的方法,而是当内 置锁不适用时,作为一种可选择的高级功能。ReentrantLock 实现了* Lock 接口*,并提供了与 synchronized 相同的互斥性和内存可见性。但相较于 synchron原创 2017-05-01 18:09:55 · 296 阅读 · 0 评论 -
Java并发(七)线程的对象锁
回顾一下对象锁创建一个线程MyThread2并继承Thread类,重写run方法class MyThread2 extends Thread{ private StringBuilder sb; public MyThread2(StringBuilder sb){ this.sb = sb; } @Override public void run(原创 2017-05-01 18:45:51 · 295 阅读 · 0 评论 -
NIO学习整理
NIO是什么 Java NIO(New IO)是从Java 1.4版本开始引入的 一个新的IO API,可以替代标准的Java IO API。 NIO与原来的IO有同样的作用和目的,但是使用 的方式完全不同,NIO支持面向缓冲区的、基于 通道的IO操作。NIO将以更加高效的方式进行文 件的读写操作。NIO和传统IO流1. Buffer一,缓冲区(Buffer):在原创 2017-04-22 12:57:34 · 391 阅读 · 0 评论 -
栈的实现
栈栈是我们比较熟悉的概念,最大的特点就是先进后出,对栈的模拟有两种方式: 1. 链表 2. 数组链表的实现使用单行链表进行模拟/** * 单向链表实现 */class ListStack<T>{ /** * 内部节点类 */ private class Node<T>{ Node(){} Node(T data,Node<T原创 2017-05-14 17:39:42 · 192 阅读 · 0 评论 -
Java并发(八)生产消费问题&虚假唤醒
描述生产消费问题在java多线程的学习中是经常遇到的问题 ,多个线程共享通一个资源的时候会出现各种多线程中经常出现的各种问题。实例说明三个类:售货员Clerk,工厂Factory,消费者Consumer Factory和Consumer共享Clerk对象1.普通情况Clerk类:class Clerk{ //商品数量默认是0,volatile关键字保证内存可见性 private原创 2017-05-06 01:14:13 · 896 阅读 · 0 评论 -
Java并发(九)Condition和线程顺序执行
有的时候我们希望线程按照希望的顺序依次执行,比如线程A,B,C,按照顺序依次执行,这时候就要用到阻塞和唤醒,之前的时候我们学到过wait()和nofity/notifyAll()这两个方法,这里我们使用java.concurrent.locks.Lock接口来实现类似的功能;用到的包和类java.concurrent.locks.Lock:接口|-->java.concurrent.locks.R原创 2017-05-06 13:40:23 · 1680 阅读 · 0 评论 -
Java并发(十)线程池&fork/join框架
什么是线程池第四种获取线程的方法:线程池,一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个ThreadPoolExecutor 还维护着一些基原创 2017-05-06 21:40:18 · 2657 阅读 · 0 评论 -
java打印图形
打印实心三角形@Test public void test(){ //打印的行数 int n=11; //循环打印总行 for(int i=0;i<n;i++){ // 每行的空格 for(int j=i;j<n;j++){ System.out.p原创 2017-05-28 18:26:47 · 2535 阅读 · 0 评论 -
Java8-Lambda表达式(1)
Java8-Lambda表达式一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符 “->” 该操作符成为”箭头操作符”或者 Lambda 表达式”箭头操作符” 将Lambda 表达式拆成了两部分 - 左侧:Lambda 表达式的参数列表 - 右侧:Lambda 表达式中所需要执行的功能即 Lambda 体Lambda表达式的几种格式语法格式一...原创 2018-03-19 00:04:36 · 303 阅读 · 1 评论 -
Java8-接口新特性
Java8-接口新特性default方法在Java8之前,接口不允许存在除了静态方法之外的方法的,但是在java8的时候允许default修饰符的实现方法存在。interface MyInterfaceOne { // 实现方法 default String get() { return "ha ha ha ... "; } ...原创 2018-03-22 21:26:29 · 760 阅读 · 0 评论 -
Java8-日期类型
Java8-日期类型传统日期类的缺陷传统的日期类存在着线程安全问题:@Testpublic void test1() throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Callable<Date> task = new Callable<Date...原创 2018-03-23 01:44:06 · 463 阅读 · 0 评论 -
Java并发(三)ConcurrentHashMap锁分段机制
Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对 与多线程的操作,介于 HashMap 与 Hashtable 之间。内部采用“锁分段” 机制替代 Hashtable 的独占锁。进而提高性能。此包还提供了设计用于多线程上下文中的 Col原创 2017-05-01 16:59:05 · 2116 阅读 · 0 评论 -
Java并发(二)-原子性和Atomic类
上一个博文中说了多线程运行中的内存可见性问题,这次说一下原子性问题,可以这样原子是组成物质的基本粒子(在这里忽略质子夸克等微观粒子),可以看成一个操作是不可分割的。典型的例子:int i = 0;i = i++;System.out.println(i);//i=10这个例子里面i的值为什么不为11呢?就是因为在jvm虚拟机执行这段代码的时候吧i++分成了三部分,读-改-写,导致代码编写的直观感原创 2017-05-01 16:36:51 · 371 阅读 · 0 评论 -
Java并发-1(一)内存可见性
线程学习之后,大概了解了线程的功能和原理,这里不再赘述。什么是内存可见性呢? 当若干个线程共享同一个资源的时候,这个资源就处于临界状态,如果处理不当很容易发生一些不愿意看到的错误。举个栗子:创建一个ThreadDemo类实现Runnable接口有一个boolean的变量flg默认值是false在run()方法中改变flg的值为true然后在main方法中创建一个线程执行start方法原创 2017-05-01 15:44:18 · 504 阅读 · 0 评论 -
Java的JDBC学习
—–JDBC中常用的类和接口—–(1)connection 接口:createStatement():创建Statement对象createStatement(int resultSetType,int resultSetConcurrency):创建一个statement对象,该对象将生成具有给定类型,并发性和可保存性的ResultSet对象prepareStatement():创建预处理对象原创 2016-08-15 20:44:17 · 253 阅读 · 0 评论 -
c3p0连接池
c3p0的配置方式分setters一个个地设置各个配置项类路径下提供一个c3p0.properties文件类路径下提供一个c3p0-config.xml文件1. setters一个个地设置各个配置项这种方式最繁琐,形式一般是这样Properties props = new Properties(); InputStream in = ConnectionManager.class.g转载 2016-12-11 22:40:42 · 430 阅读 · 0 评论 -
XML文件的读写
XML四种解析方式 DOMSAXJDOMDOM4J 前两种是官方自带的解析方式 后两种是第三方开源工具 XML文件示例<?xml version="1.0" encoding="utf-8"?><!--开头必须写的一段代码--><bookstore> <book id="1"> <name>百年孤独</name> <aut原创 2016-12-04 21:46:25 · 392 阅读 · 0 评论 -
java总结I/O流
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。转载 2016-08-08 20:59:21 · 1576 阅读 · 0 评论 -
Java网络
1.网络协议:1.1 IP协议是InternetProtocol的简称,Internet采用协议是TCP/IP协议,全称是1)TransmissionControlProtocol/InternetProtocol. IPv4:IP地址为4个字节,32位二进制数,IPv6:IP地址是16个字节,64位二进制数 。2)TCP/IP协议: 4层模型------> 应用层(各种应用层协议原创 2017-03-01 00:54:07 · 264 阅读 · 0 评论 -
JSP-Filter过滤器
过滤器为什么需要过滤器?在web项目中,有的时候我们不想未登录的用户或者外界没有权限者访问某一些jsp,这个时候就需要filter了FirstFilter当访问index.jsp和main.jsp的时候需要做一些处理.配置web.xml:<!-- 定义FirstFilter过滤器标签 --> <filter> <filter-name>FirstFilter</filter-name>原创 2017-02-12 22:30:55 · 400 阅读 · 0 评论 -
java的抽象类和接口
前言总结一下抽象类和接口的区别,算是复习一下基础知识吧例子接口 接口 接口实现类 接口测试类 Talk TalkMan TestAbstractTalk:/* * 1. 接口只能被public修饰,可是显示的使用private或者protected但是会报错 * 2. 接口的成员必须被static final 修饰 * 3. 接口方法默认而且必须被abstract修饰,原创 2017-02-12 23:06:23 · 212 阅读 · 0 评论 -
java的泛型回顾
前言这边博文例子是自己测试并整理的,有点凌乱,但是耐心看下去还是能对泛型略知一二的。具体详细的泛型介绍有一篇写的很好的博客:——————此处传送门——————几个常见的符号遇到一些泛型的代码,经常见到这几个符号,一开始学的时候也是糊里糊涂。E:Element,表示集合中的元素T:Type(Java类)K:key(键)V:value(值)N:number(数值类型)?:表示不确定的数值类型原创 2017-02-12 23:56:17 · 266 阅读 · 0 评论 -
java的内存可见性
可见性可见性:一个线程对共享变量值的修改,能够及时被其他线程看到;共享变量:如果一个变量在多个线程的工作内存中都存在副本,那这个变量就是这几个线程的共享变量;线程的工作内存:Java内存抽象出来的概念Java内存模型(JMM-Java Memory Model):描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取出变量这样的底层细节所有变量原创 2017-02-13 22:43:40 · 482 阅读 · 0 评论 -
java的反射
前言本篇是之前java反射学习的回顾,主要以详细的代码Demo喂猪,关于反射的细节不做介绍,具体的详细介绍参考一位大神的博客——–传送门———Class类在面向对象的世界里,万事万物皆对象。类是对象,类是java.lang.Class类的实例对象。话不多说Demo里面详解:package PackageOne;public class JavaClass { public static原创 2017-02-13 23:43:35 · 200 阅读 · 0 评论 -
java设计模式(2)
结构型模式代理模式实例说明:1. 被代理的类和接口:接口:Moveable.java实现类:Car.javaMoveable.java:package design_pattern.proxy;public interface Moveable { void move();}Car.java:package design_pattern.proxy;import java.util原创 2017-02-14 21:03:56 · 278 阅读 · 0 评论 -
单例模式&工厂模式
首先引入几个大神的博客设计模式概述参考博客创建型模式单例模式 单例模式要求在整个应用中保证只有一个类存在单例模式详细解析参考博客饿汉模式public class Singleton {/* -----------------饿汉模式------------------- */ //1.私有的构造方法 private Singleton(){} //2.创建唯一实例原创 2017-02-14 16:02:49 · 211 阅读 · 0 评论 -
Java枚举类回顾
整理一些枚举类的笔记。。。枚举类:包含有限个成员对象而且默认被private static final修饰私有构造方法属性和字段private final修饰比较在JDK1.5之后引入了枚举类关键字enum,使得枚举类的创建变得更加简单明了,下面以一个例子说明自定义枚举类package Enum;/** * 枚举类理解 * @author hp * */public class原创 2017-04-04 01:34:50 · 223 阅读 · 0 评论 -
Java8-Stream API
Java8-Stream APIStream是java8推出的一个新的抽象的流,可以使得想操作数据库一样操作java中的集合。创建Stream共有四种方法创建Stream//1. 通过 Collection 系列集合的 stream() <串行流> 或 paralleStream() <并行流>List<String> list = n...原创 2018-03-21 18:13:32 · 277 阅读 · 0 评论