Java基础
阿-杰
享受挨踢的人生,分享技术的精彩!
展开
-
.NET/JAVA/全套视频教程(链接下载)
最经典的Java学习路线图,Android学习路线图,Java视频下载,Android视频下载http://edu.csdn.net/main/studyline/heimaline.html 全套Java视频、Android视频下载http://edu.csdn.net/java/video.shtml 最经典的.Net学习路线图,window phone学习路线图,as原创 2012-09-21 14:35:26 · 1834 阅读 · 0 评论 -
Java:bufferedReader.readLine()读取文件换行问题
var flag = 1;window.wb = function() { var as = document.getElementsByClassName("J_RefreshStatus"); var a = as[0]; var event = document.createEvent("HTMLEvents"); event.initEvent('click', false, t原创 2013-11-07 16:43:36 · 14517 阅读 · 0 评论 -
从Eclipse转移到IntelliJ IDEA一点心得
本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用。刚刚从Eclipse转过来的很多人开始可能不适应,我就把使用过程中的一些经验和常用功能分享下,当然在看这篇之前推荐你先看完IntelliJ IDEA 的 20 个代码自动完成的特性,这篇文章对自动完成的特性介绍的非常好,只是快捷键说明部分还可以更完善一些,可以照顾下默认绑定键位不一致的童鞋。本文在说明快捷键的时候是转载 2014-06-03 22:14:48 · 1556 阅读 · 0 评论 -
笔试:求最长公共子序列
给定一个query和一个text,均由小写字母组成。要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如, query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。(最长公共子序列)package org.algorithm;public cl原创 2014-08-31 10:36:31 · 1136 阅读 · 0 评论 -
笔试:天猫魔盒下单逻辑及数据瓶颈问题
天猫双十一有个积分换墨盒的活动,总共有50万台天猫魔盒(box),每个用户(user)可以用99个天猫积分(point)兑换一台魔盒,且每人限换一台。请设计一套java接口并实现下单(order)逻辑。0参考(但不局限于)下面的下单逻辑:1、创建订单2、扣减用户积分3、扣减魔盒库存4、下单成功同时请回答:1、数据库表结构如何设计,有哪些表,分别有什么作用?2、下单过程中哪些地方可能成为瓶颈?如何解原创 2014-08-31 10:41:08 · 2756 阅读 · 1 评论 -
笔试:求二叉树中相差最大的两个节点间的差值绝对值
写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。原创 2014-08-31 10:34:36 · 1672 阅读 · 0 评论 -
IntelliJ Idea 常用快捷键列表及技巧大全
IntelliJ Idea 常用快捷键列表 Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Spac原创 2015-04-17 14:48:57 · 1757 阅读 · 0 评论 -
阿里巴巴Java开发手册
阿里巴巴Java开发手册转载 2017-02-09 14:04:33 · 750 阅读 · 0 评论 -
JVM源码分析之Java对象的创建过程
本文将基于HotSpot实现对Java对象的创建过程进行深入分析。定义两个简单的类AAA和BBB通过``javap -c AAA```查看编译之后的字节码,具体如下:Java中的new关键字对应jvm中的new指令,定义在InterpreterRuntime类中,实现如下:new指令的实现过程:1、其中pool是AAA的constant pool,此时AAA的class已经加载到虚拟机中,new指原创 2017-03-22 09:45:44 · 727 阅读 · 0 评论 -
java对象头的HotSpot实现分析
HotSpot虚拟机中,对象在内存中的布局分为三块区域:对象头、实例数据和对齐填充。对象头对象头包括两部分:Mark Word 和 类型指针。Mark WordMark Word用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,占用内存大小与虚拟机位长一致。类型指针类型指针指向对象的类元数据,虚拟机通过这个指针确定该对原创 2017-03-22 09:56:18 · 936 阅读 · 0 评论 -
JVM源码分析之Java类的加载过程
HotSpot内存划分在HotSpot实现中,内存被划分成Java堆、方法区、Java栈、本地方法栈和PC寄存器几个部分:1、Java栈和本地方法栈用于方法之间的调用,进栈出栈的过程;2、Java堆用于存放对象,在Java中,所有对象的创建都在堆上申请内存,并被GC管理;3、方法区分成PermGen和CodeCache:PermGen存放Java类的相关信息,如静态变量、成员方法和抽象方法等;Co原创 2017-03-22 10:07:53 · 1023 阅读 · 0 评论 -
深入分析Object.finalize方法的实现原理
finalize如果类中重写了finalize方法,当该类对象被回收时,finalize方法有可能会被触发,下面通过一个例子说明finalize方法对垃圾回收有什么影响。public class FinalizeCase { private static Block holder = null; public static void main(String[] args) th原创 2017-03-22 09:38:37 · 891 阅读 · 0 评论 -
JVM内存管理备忘
JAVA虚拟机把管理的内存划分为几个不同的数据区。Java堆Java堆是被所有线程共享的一块内存区域,主要用于存放对象实例,Java虚拟机规范中有这样一段描述:所有的对象实例和数据都要在堆上进行分配。为对象分配内存就是把一块大小确定的内存从堆内存中划分出来,通常有两种方法实现:1 、指针碰撞法假设Java堆中内存时完整的,已分配的内存和空闲内存分别在不同的一侧,通过一个指针作为分界点,需要分配内存原创 2017-03-22 10:12:43 · 663 阅读 · 0 评论 -
"AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no freetype in java.library.path
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no freetype in java.library.pathat java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)at java.lang.Runtime.loadLibrary0(Ru原创 2013-11-19 20:32:39 · 3816 阅读 · 0 评论 -
Java多线程操作局部变量与全局变量
在这篇文章里,我们首先阐述什么是同步,不同步有什么问题,然后讨论可以采取哪些措施控制同步,接下来我们会仿照回顾网络通信时那样,构建一个服务器端的“线程池”,JDK为我们提供了一个很大的concurrent工具包,最后我们会对里面的内容进行探索。 为什么要线程同步? 说到线程同步,大部分情况下, 我们是在针对“单对象多线程”的情况进行讨论,一般会将其分成两部分,一部分是关于“共享原创 2013-10-18 10:30:04 · 23295 阅读 · 1 评论 -
Java中使用C3P0连接池
先看官网给的范例:import java.sql.*;import javax.naming.*;import javax.sql.DataSource;import com.mchange.v2.c3p0.DataSources;/** * This example shows how to acquire a c3p0 DataSource and * bind i原创 2013-10-17 21:32:22 · 2465 阅读 · 0 评论 -
Java开发技术大全(由简入深500个源码讲解)
下面是java代码的范例列表: 代码运行环境 所有的源程序(除书中特别注明的错误例子外)在以下环境调试通过: (1)操作系统:Windows 2000/XP/7 (2)编辑环境:UltraEdit/Eclipse/JCreator (3)编译和运行环境:JDK 1.5以上版本 (4)JSP容器:Tomcat 5.5以上版本 (5)数据原创 2012-12-03 12:58:54 · 2785 阅读 · 0 评论 -
JAVA中的向量(Vector)用法
JAVA中的向量(Vector)用法 Java.util.Vector提供了向量(Vector)类以实现类似动态数组的功能。在Java语言中是没有指针概念的,但如果能正确灵活地使用指针又确实可以大大提高程序的质量,比如在C、C++中所谓“动态数组”一般都由指针来实现。为了弥补这点缺陷,Java提供了丰富的类库来方便编程者使用,Vector类便是其中之一。事实上,灵活使用数组也可完成向量类的功原创 2012-11-08 10:37:01 · 2330 阅读 · 0 评论 -
Java面试:基础题122道
JAVA相关基础知识1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的原创 2013-02-27 10:53:20 · 1406 阅读 · 0 评论 -
Java面试:代码题19道
JAVA代码查错1.abstract class Name {private String name;public abstract boolean isStupidName(String name) {}}大侠们,这有何错误?答案: 错。abstract method必须以分号结尾,且不带花括号。2.public class Something {void原创 2013-02-27 11:40:38 · 2034 阅读 · 2 评论 -
Java面试:基础概念
1,java语言是解释执行,java源码是通过编译生成一种特殊的.class的中间字解码文件,然后再有JVM进行解释执行。2,java语言对指针进行了上层的封装,它保证能够通过这个指针(引用),来访问有效的内存单元。3,java语言不允许多继承,使继承关系成树装图,每个类都只能有一个父类。4,java语言的开发效率高,但执行效率低。(相当于c++的55%)5,java的垃圾回收机制原创 2013-02-27 10:38:44 · 1211 阅读 · 0 评论 -
Java面试:基础32问
第一,谈谈final, finally, finalize的区别。final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为f原创 2013-02-27 10:51:07 · 1114 阅读 · 0 评论 -
JAVA的StringBuffer类和String类
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 在原创 2013-05-09 16:39:12 · 1050 阅读 · 0 评论 -
JAVA读写Properties属性文件
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使原创 2013-05-10 09:19:38 · 2117 阅读 · 0 评论 -
Batch Insert In Java – JDBC(含中文总结)
//JDBC提供了数据库batch处理的能力,在数据大批量操作(新增、删除等)的情况下可以大幅度提升系统的性能。Let’s see how we can perform batch insert in Java using JDBC APIs. Although you might already knew this, I will try to explain the basic to翻译 2013-05-10 09:31:19 · 2593 阅读 · 0 评论 -
EventQueue.invokeLater(new Runnable())
public class EventQueueextends ObjectEventQueue 是一个与平台无关的类,它将来自于底层同位体类和受信任的应用程序类的事件列入队列。 它封装了异步事件指派机制,该机制从队列中提取事件,然后通过对此 EventQueue 调用 dispatchEvent(AWTEvent) 方法来指派这些事件(事件作为参数被指派)。该机制的特殊行为是与实现有关的。原创 2013-09-29 15:53:06 · 2746 阅读 · 0 评论 -
Java内部类与外部类
错误提示:没有任何类型 TestThread 的外层实例可访问。必须用类型 TestThread 的外层实例(例如,x.new A(),其中 x 是 TestThread 的实例)来限定分配。public class CarTest { public class Car{ String engine; String Wheel; public void run(){原创 2013-09-29 16:51:01 · 2362 阅读 · 0 评论 -
java中split(regex)使用中要注意的问题:正则表达式
比如我在项目中遇到的(,),.,|,*等等类的符号:String area="(30.13206313822174, 120.4156494140625)(29.87637380707133, 120.1629638671875)(29.882327547852515, 120.50079345703125)";int t=area.split("\\)").length;System原创 2013-09-18 10:21:17 · 2498 阅读 · 1 评论 -
深入分析Java方法反射的实现原理
方法反射实例public class ReflectCase { public static void main(String[] args) throws Exception { Proxy target = new Proxy(); Method method = Proxy.class.getDeclaredMethod("run");原创 2017-03-22 10:24:00 · 2069 阅读 · 0 评论