Java咖啡厅
wonderful_life_mrchi
不登高山,不知天之高也;不临深溪,不知地之厚也
展开
-
谈Java泛型
泛型 1.什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符是一样的。 我们可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map原创 2016-09-09 14:18:13 · 11117 阅读 · 0 评论 -
Java集合的读写分离术--CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。转载 2017-08-16 16:18:04 · 862 阅读 · 0 评论 -
Java NIO技术学习之一
本文为NIO入门学习的第一篇,将会介绍NIO中几个重要的概念。I/O即输入输出,指的是计算机和外界的接口,或者是单个程序同计算机其他部分的接口。 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统每次处理一个字节,输入流(input stream)生产一个字节,输出流(output stream)消费一个字节。这种工作模式下,非常容易给流数据创建过滤器(filters),而且也转载 2017-08-15 11:28:51 · 6057 阅读 · 0 评论 -
Java NIO技术学习之二
在上一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道。本文为NIO入门学习的第二篇,将会分析NIO中的缓冲区Buffer的内部原理。在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。在缓冲区中,最转载 2017-08-15 11:30:18 · 5353 阅读 · 0 评论 -
Java NIO技术学习之三
在上一篇中介绍了缓冲区的原理,下面来介绍NIO中另一个核心对象选择器(Selector)以及NIO的原理。在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per-connection”。这是一种基于阻塞式I/O的多线程模型。在该模型中,Server为每个转载 2017-08-15 11:31:12 · 6185 阅读 · 0 评论 -
大话JVM虚拟机结构和垃圾回收
说起来,java最激动人心的技术应该是跨平台了,当这种优良的特性变成习惯时,我们不再对此津津乐道。但是好多java程序员都忽略了jvm另一大特性:自动垃圾回收。殊不知,这段内容有多么重要,对学习java具有指导意义。我们知道好多企业面试官喜欢问这方面的问题,什么是垃圾回收,如何jvm调优,如何设置jvm参数等等。下面就这方面知识阐述下拙见一、Java虚拟机运行时结构参见《java虚拟机规范》规定原创 2017-08-15 16:10:28 · 706 阅读 · 0 评论 -
电子邮件收发原理和JavaMail开发
Java邮件开发介绍为什么要学习javamail开发现在很多WEB应用在开发时都需要集成邮件发送功能,例如:给新注册的用户自动发送一封包含其注册信息的欢迎E-Mail。给过生日的注册会员自动发送一封表示祝贺的E-Mail。将网站的最新活动信息通过E-Mail发送给所有的注册会员。等等…这些功能的实现都需要软件开发人员在开发WEB应用中编写相应的邮件处理程序。学习目标学习javamail主要转载 2017-09-07 20:25:09 · 12772 阅读 · 0 评论 -
JavaMail发送邮件api实例
邮件发送程序我们先使用JavaMail API发送一封简单的邮件,步骤为创建包含邮件服务器的网络连接信息的Session对象。创建代表邮件内容的Message对象。创建Transport对象、连接服务器、发送Message、关闭连接。这样使用JavaMail API发送一封最简单的邮件(纯文本邮件)的代码为:public class SendMail { pu转载 2017-09-07 20:56:34 · 1664 阅读 · 0 评论 -
java类加载时机
java中类加载时机java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new、getStatic、putStatic或invokeStatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令最常见的java代码场景是:1)使用new关键字实例转载 2017-09-18 20:58:14 · 1411 阅读 · 0 评论 -
IO和NIO的比较
我们做过聊天室Socket的项目,知道,传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提原创 2017-09-01 21:35:52 · 1139 阅读 · 0 评论 -
java excel导入和导出(poi,jxl)
来自:http://blog.csdn.NET/jerehedu/article/details/45195359 一、介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。 目前,比转载 2017-09-02 18:15:43 · 2671 阅读 · 0 评论 -
jvm视角看java继承和多态
首先,明确一下,Java多态的三个必要条件:1、 继承2、 子类重写父类方法3、 父类引用指向子类对象 然后看一个例子package test.xing;class Father{ protected int age; public Father(){ age = 40; } void转载 2017-09-21 10:12:59 · 2089 阅读 · 3 评论 -
Java版排序专题
什么是排序? 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 排序分类 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的排序算法讲解 1、插入排序 /** * 算法思想 * 向一个已经排好序的数组中进行插入,初始排好序的数组是只有第一原创 2017-08-08 17:39:10 · 18811 阅读 · 0 评论 -
JavaEE面试题库分类及答案之二
24、使用Cookie对象 答: 写入: Cookie c=new Cookie(“maomao”,”xixi”); c.setMaxAge(100);//单位秒 c.setPath(“/”); response.addCookie(c);读取:Cookie cookies []=request.getCookies(); if(cookies!=null) { for(in原创 2017-08-07 17:34:02 · 22058 阅读 · 0 评论 -
浅谈反射机制
Java中的对象与反射机制. 一 前言 在java的世界里,一切皆对象。其实从某种意义上说,在java中有两种对象:实例对象和Class对象。实例对象就是我们平常定义的一个类的实例 public class Person {} 然后利用new关键字: public class Person { public static void main(String[] args){原创 2016-09-09 14:22:58 · 19019 阅读 · 0 评论 -
Struts框架命名空间问题答疑
Struts框架的namespace 1. Struts设计namespace用来做什么的 Struts官网上有一段话描述了namespace的含义: The namespace attribute subdivides action configurations into logical modules, each with its own identifying prefix. Nam原创 2016-09-02 17:00:22 · 10758 阅读 · 0 评论 -
Java面向对象入门
主题:Java面向对象编程 主要学习以下内容: 1.编程语言的发展,理解类和对象的概念 2.Java的面向对象详解 1.开场语: 今天咱们来学习java语言的核心特性,面向对象的入门课程。希望大家能够通过讲解了解到类和对象的概念,java中对象的创建,java对象的访问,以及如何用面向对象思维去思考问题。在讲解面向对象编程之前我们先来了解下编程语言的发展历程。 2.最早的编程语言是机原创 2016-09-02 17:27:58 · 41420 阅读 · 0 评论 -
Java菜鸟逆袭之入门篇(附讲解)
Java系列课程简介 章节安排 1-5:java语法,流程结构,函数,数组 6-17:面向对象 18:jdk8新特性。 关于Java 前期知识 硬件,设备,软件,操作系统,应用软件。 编程语言是什么? 编程语言本质是用来做什么的? 本质是:工具。 1. 用编程语言实现我们美好的梦想。 2. 赚钱。学习好java我们可以做些什么? Java工程师 JavaE原创 2016-09-03 05:53:51 · 34199 阅读 · 0 评论 -
Java菜鸟逆袭之基础语法上
Java基础语法 回顾: 1. java特点 跨平台,自动垃圾回收,面向对象,安全性,开放性。 2. jvm,jre,jdk jvm:java虚拟机,jre java运行时环境,jdk:开发工具包,里面包含了jre 3. 设置环境变量 path—可执行文件的路径,classpath—jar包lib:为了寻找class文件,为了使用jdk自带的lib下面常用的类 4. 编写一段ja原创 2016-09-07 16:00:02 · 48983 阅读 · 0 评论 -
Java菜鸟逆袭之基础语法下
前提知识点2:原码,反码,补码 有符号数据表示法 • 在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。 • 原码 • 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 • 反码 • 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 • 补码原创 2016-09-07 16:05:32 · 57170 阅读 · 0 评论 -
JavaEE面试题库分类及答案之三
第三部分UML 及其他(了解即可) 1.名词解释 答: JDO 是Java对象持久化的新的规范,为Java Data 0bject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务原创 2017-08-07 17:36:01 · 10326 阅读 · 0 评论 -
JavaEE面试题库分类及答案之一
第一部分Jsp&servlet 1 三个Statment区别,用法 statement对象作为最基本的数据操作对象,可以应用于几乎所有的数据库,但是由于运行时使用的是字符串连接技术,所以存在安全隐患。 preparedstatement:叫做预编译的对象,在语句执行之前,向数据库发送类似于公式一样的模板,其中使用了替换变量,从而提高了数据存储的安全性,但这个数据操作对象不是效率最高的。可以应原创 2017-08-07 17:29:49 · 18292 阅读 · 0 评论 -
JavaEE面试题库分类及答案之四
第五部分 选择题,编程题集锦 一、选择题(每题2分) 1.下列哪些情况可以终止当前线程的运行? a. 抛出一个异常时。 b. 当该线程调用sleep()方法时。 c. 当创建一个新线程时。(与当前进程无关) d. 当一个优先级高的线程进入就绪状态时。 答案:ABD 2. 下面哪些为构造函数的特性定义 a. 在类中声明构造函数时,名称应该与类名相同 b. 具有重载特原创 2017-08-08 11:51:21 · 13807 阅读 · 0 评论 -
JavaEE面试题库分类及答案之五
第六部分 面试和笔试大全 1、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 2、int 和 Integer 有什么区别 Java 提供两种不原创 2017-08-08 11:53:48 · 5954 阅读 · 0 评论 -
JavaEE面试题库分类及答案之六
第六部分 JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String name) {} } 大侠们,这有何错误? 答案: 错。abstract method必须以分号结尾,且不带花括号。 2. public class Somethi原创 2017-08-08 11:55:30 · 18101 阅读 · 0 评论 -
Java工程师全面笔试题库及答案
面试题集面试题集共分为以下十部分: 一、Core Java: 1 — 95 题 基础及语法: 1 — 61 题 异常: 62 — 69 题 集合: 70 — 80 题 线程: 81 — 90 题 IO & Socket: 91 — 95 题 二、OOAD & UML: 96 — 101 题 三、XML: 102 — 105 题 四、SQL: 106 — 109 题原创 2017-08-08 12:10:48 · 54312 阅读 · 4 评论 -
自定义ClassLoader及其使用
MyClassLoader.java import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;public class MyClassL...原创 2018-11-24 17:48:23 · 1386 阅读 · 0 评论