java
北漂程序员-阿力
作为应届毕业生必须得学习
展开
-
Java中的异常
Throwable(可抛出物,所有异常类的基类)----------->Error和 ExceptionException----------->RuntimeException和Others(CheckedExcetpion)一. Throwable: 可抛出物, 所有异常类的基类二.Error 非常严重的错误java程序员在程序这个层次 处理不了(不能通原创 2016-03-19 20:05:13 · 246 阅读 · 0 评论 -
Java对数组的复制
数组的复制方法现在至少有四个思路: 1 ,使用循环结构 这种方法最灵活。唯一不足的地方可能就是代码较多 2, 使用Object类的clone()方法, 这种方法最简单,得到原数组的一个副本。灵活形也最差。效率最差,尤其是在数组元素很大或者复制对象数组时。 3 ,使用Systems的arraycopy这种方法被告之速度最快,并且灵活性也较好,可以指定原数组名称、以及元素的开始位置、复制的元素原创 2016-06-09 10:04:58 · 338 阅读 · 0 评论 -
JAVA线程(二)
一,线程同步问题 1.Why? 为什么要线程同步? 线程对象(Runnable)中定义了全局变量,run方法会修改该变量时,如果有多个线程同时使用该线程对象,那么就会造成全局变量的值被同时修改,造成错误。看一下下面的代码:public class CopyOfAccount implements Runnable{ private int sum = 8000;// 钱 @Ov原创 2016-04-24 10:29:52 · 372 阅读 · 0 评论 -
JAVA聊天室代码
聊天室界面: 源码:public class ClientFrame extends Frame { private TextField textFieldContent = new TextField(); private TextArea textAreaContent = new TextArea(); private Socket socket = null;原创 2016-05-08 20:17:31 · 10277 阅读 · 3 评论 -
JAVA线程(死锁)
一,哲学家吃饭问题 1965年,Dijkstra提出并解决了一个他称之为哲学家就餐的同步问题。 哲学家的生活就是思考和吃饭,即思考,饿了就餐,再思考,循环往复。要求是:每一个哲学家只有在拿到位于他左右的筷子后,才能够就餐。 当五个哲学家都饥饿时,都拿着一支筷子,这样就可能五个哲学家都用不上餐。这就是死锁产生死锁的条件: 1.有至少一个资源不能共享 2.至少有一个任务必须持有一个资源并原创 2016-04-24 12:12:12 · 488 阅读 · 0 评论 -
JAVA常考面试题
1、 方法重载与覆盖的区别?( Overload 与 Override 的区别) 答:方法的重载属于编译时多态,方法名相同参数列表不同,返回值必须相同或都没有返回值类型。 方法的覆盖属于运行时多态,子类覆盖父类的方法,子类指向父类引用,在调用方法的时候用父类的引用调用。2、 集合的实现类与区别? 答:Collection 接口,集合结构总的父接口,有两个子接口 list 和 set原创 2016-05-08 16:43:21 · 532 阅读 · 0 评论 -
JAVA线程(一)
What? 先给大家推荐一片文章: http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html进程: 程序的一次运行,程序运行的时候至少包含一个进程(也可能包含多个) 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程: 一个进程至少包含一个线程(也可能包含多原创 2016-04-22 21:20:21 · 556 阅读 · 3 评论 -
final关键字总结
二.修饰变量:基本类型:final double PI=3.1415;//最终变量 表示常量 只能被赋值一次,如果第二次赋值编译报错引用类型:final String str="aaaaaaaaaa";// //最终引用二.修饰类:如果你定义一个类, 你认为该类是最终版本,不想让别人继承它,这个时候用final关键字,jdk的类一般用final三.修饰方法原创 2016-03-11 19:19:04 · 237 阅读 · 0 评论 -
秒懂java回调方法
首先大家看一下几行代码:首先写一个接口有两个方法success和failpublic interface CallBack { public void success(String str); public void fail(String str);}我们设想一下如果我们写了一个自己的Post请求类如果服务器返回的200那我们成功了如果返回别的数我们失败了原创 2016-03-06 21:06:05 · 432 阅读 · 0 评论 -
类的加载顺序
初始化过程: 1. 初始化父类中的静态成员变量和静态代码块 ; 2. 初始化子类中的静态成员变量和静态代码块 ; 3.初始化父类的普通成员变量和代码块,再执行父类的构造方法; 4.初始化子类的普通成员变量和代码块,再执行子类的构造方法; class X{ Y y=new Y(); public X(){ System.out.print("X");原创 2016-06-09 20:51:22 · 405 阅读 · 0 评论 -
Java自定义注解详解
注解(Annotation)注解提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解来使用这些数据),用来将任何的信息或者元数据与程序元素(类、方法、成员变量等)进行关联。其实就是更加直观更加明了的说明,这些说明信息与程序业务逻辑没有关系,并且是供指定的工具或框架使用的。Annotation像一种修饰符一样,应用于包、原创 2016-08-09 17:24:35 · 1259 阅读 · 0 评论 -
设计模式入门篇(1)
设计模式1.设计模式定义2.设计模式的六大原则 1. 设计模式定义设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多原创 2018-01-20 22:46:49 · 225 阅读 · 0 评论 -
Class.getResource和ClassLoader.getResource的路径问题
http://www.cnblogs.com/yejg1212/p/3270152.html转载 2017-08-30 10:46:52 · 200 阅读 · 0 评论 -
ByteBuffer的简单实例
public class ByteBufferTest { public static void main(String[] args) { //10个字节大小 ByteBuffer buffer = ByteBuffer.allocate(10); //容量是10,EOF位置是10,初始位置也是0 v(buffer.capacity原创 2017-09-07 16:52:25 · 2142 阅读 · 0 评论 -
System.getProperty("xx.yy");的配置
public class App { public static void main(String[] args) { String name = System.getProperty("my.name"); System.out.println(name); }}设置启动参数如下: 1.eclipse–> run configuration–> VM原创 2017-09-07 14:16:48 · 280 阅读 · 0 评论 -
Java正则表达式详解
正则表达式可以说是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换。在实例演示之前先了解一下Pattern、Matcher这两个工具类.Pattern:编译好的带匹配的模板(如:Pattern.compile(“[a-z]{2}”);/ / 取2个小写字母)Matcher:匹配目标字符串后产生的结果(如:pattern.matcher(“目标字符串”);)字符串转载 2017-08-29 15:06:06 · 235 阅读 · 0 评论 -
Java用ScriptEngine解析脚本
javax.script,始于JDK1.6,一般的用途主要是能解析通用的表达式就好,比如X >= 1(X作为参数传入)这样的表达式,也能利用js的函数语法,创造一个就像java的函数一样存在于内存中随时可以被调用的函数,更可以将js中的对象直接转换成java对象。 cript包下最主要的是ScriptEngineManager、ScriptEngine、CompiledScript和Binding原创 2017-09-06 16:57:55 · 3490 阅读 · 1 评论 -
Java volatile关键字
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。对于volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的详细请看:http://www.cnblogs.com/a原创 2017-07-17 11:05:02 · 215 阅读 · 0 评论 -
Java守护线程的理解
守护线程就是main同生共死,当main退出,它将终止,而普通线程是在任务执行结束才停止。 用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。Java垃圾回收线程就是一个典型的守护线程,当我们的程序中不再有任何运行中的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当原创 2016-12-15 11:07:53 · 250 阅读 · 0 评论 -
继承中的四个“不能”
一,private修饰的方法不能被继承,也不能重写二,static修饰的方法可以被继承,但不能叫重写三,构造函数不能被继承四,初始化块不能被继承原创 2016-03-06 20:16:34 · 250 阅读 · 0 评论 -
方法重载规则
一同: 方法的签名相同 方法签名= 方法名 + 参数列表一大: 子类方法的访问控制权限 比 父类方法的访问控制权限大 ....两小:1. 子类方法的返回值 是 父类方法返回值的 子类....2. 子类方法抛出的异常 比 父类方法 抛出的异常 范围少....重载和重写的区别参数列表不同表现在三个方面:1.参数类型不原创 2016-03-06 19:59:16 · 1354 阅读 · 0 评论 -
JAVA集合(2)
Map(接口) 先看一张图 Map:“键值”对映射的抽象接口。该映射不包括重复的键,一个键对应一个值。 SortedMap:有序的键值对接口,继承Map接口。NavigableMap:继承SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法的接口。AbstractMap:实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。Dictionary:任何可将键映射原创 2016-04-10 18:47:33 · 275 阅读 · 0 评论 -
两个比较接口Comparable与Comparator
Comparable 和 Comparator 都是用来实现集合中元素的比较、排序的。 一,Comparable此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。 强烈推荐(虽然不是必需的)使自然排序与 equals 一致。所谓与equal原创 2016-04-10 13:35:41 · 457 阅读 · 0 评论 -
JAVA集合(1)
一,What? 集合简单的说就是容器,java中的集合,也能装东西,装的是 对象(的引用).常见的集合类有这些种: 实现Collection接口的:Set,List,Queue以及他们的实现类。 实现Map接口的:HashMap及其实现类,我们常用的有Map及其实现类HashMap,HashTable,List、Set及其实现类ArrayList、HashSet等。 有人画了这样一张图来表示原创 2016-04-10 10:08:30 · 383 阅读 · 0 评论 -
Java重写equals
“==” 实质比较的是二进制位 (1)基本类型 二进制位 是数值 数值相等 true (2)引用各类型 引用的是同一个对象 返回的是true 引用的不是同一个对象 返回的是 falseequals (1)String类的equals是重写了Object类的equals 比较的是 字面值 (2) Object 的 equals 方法 相当于原创 2016-03-27 16:50:25 · 294 阅读 · 0 评论 -
Java中的栈操作
java中常用的栈操作 top赋初值是-1,入栈先做top++,出栈先赋值后top– 如图: 示例代码:public interface IStack { void push(Object obj) throws Exception; Object pop() throws Exception; boolean isEmpty();}```接口的实现public cla原创 2016-03-26 18:46:30 · 1544 阅读 · 0 评论 -
数据结构基本概念整理
一.数据 数据是表示符号 数据结构把数据分为: 数值类型 和 非数值类型 数值类型: 数值计算 非数值: 字符串 声音 图像 视频 可以以某种编码手段 转换成 字符 进行 处理….二.数据元素 定义:数据元素是数据组成的基本单位 数据结构 java 数据库 数据元素 对象原创 2016-03-25 20:32:22 · 369 阅读 · 0 评论 -
抽象了若干个知识点
抽象了若干个知识点1.一个类中,只要有一个方法定义成抽象的,这个类就必须定义成抽象类2.抽象类中 可以有 普通方法(带有方法体的方法)、也可以有抽象方法(没有方法体的方法)3.抽象类不能够创建对象 4.如果想要使用子类创建实例,必须重写抽象类的所有抽象方法,除非子类也是抽象类.5.抽象方法 不能用private修饰 只能是public protected default**6.抽象类可以没有抽象方法原创 2016-03-12 19:22:38 · 255 阅读 · 0 评论 -
抽象类和接口
抽象类和接口说得很细http://blog.csdn.net/zhaoqianjava/article/details/6854214转载 2016-03-12 18:36:44 · 240 阅读 · 0 评论 -
JAVA IO(一)
java IO流的基本概念:I —> Input 输入 O —> Output 输出 I/O —>输入输出流 注:输入输出相对于程序而言 外界————————>程序叫输入 程序————————>外界叫输出一,File文件 导入的包: java.io.File1,新建一个文件叫hello.txtFile file=new File("F:\\aaa\\hello.txt");boolea原创 2016-04-15 19:19:30 · 397 阅读 · 0 评论 -
JAVA IO(二)
一,IO流的分类重点 四个抽象类 分类 ————字节 ———————字符 ——–方法 输入 ————InputStream ————Reader —–read() 输出 ————OutputStream ——— Writer——write()1.字节读InputStream实现类FileInputStream的read方法一个字节一个字节的读文件。public class原创 2016-04-16 18:43:29 · 333 阅读 · 0 评论 -
用继承,组合复用代码及default的继承范围
编程中多用组合少用继承方式1:组合定义:组合是整体和部分的关系,部分只能属于一个整体 has a 整体有一个部分对象之间四大关系:(1)关联:聚合和组合(2)继承(3)实现(4)依赖组合:类A组合类B的对象class A{private B b=new B();}代码举例:比如有个类叫Dao它有两个属性一个是选择刀的大小一原创 2016-03-06 14:04:35 · 554 阅读 · 0 评论 -
java访问权限
java的访问权限java 类 的访问权限只有两种:public:公有------------>任何包都可以访问default:默认的------------>只能在包内访问java类成员的访问权限有四种:public:公有------------>任何包,任何类都可以访问private :私有------------>只能在本类内访问default:默认-------原创 2016-03-05 20:20:44 · 302 阅读 · 0 评论 -
用Javac控制台创建 Package
创建一个类Hello.java代码如下package com.chapter7;public class PackageTest {}用javac -d . Hello.java进行编译可以自动创建文件夹用java com.chapter7.Hello运行代码原创 2016-03-05 18:29:28 · 558 阅读 · 0 评论 -
JAVA Calendar
Calendar 在 Java 中是一个抽象类(Abstract Class),GregorianCalendar 是它的一个具体实现。从一个 Calendar 对象中获取 Date 对象Calendar calendar = Calendar.getInstance();Date date = calendar.getTime();常用方法Calendar c = Calendar.getIns原创 2016-05-15 17:11:43 · 451 阅读 · 0 评论 -
创建可执行的JAR包
当一个应用程序开发成功后,把项目打包。 创建普通JAR包 首先给大家介绍控制台打包 jar命令: 命令格式:jar cvf [目标文件].jar [.class所在文件夹名] 例如:所有的.class文件在com目录下,命令格式:jar cvf test.jar com创建可执行的JAR包介绍两个命令: Java 启动一个JVM 把这个程序当成windows控制台程序 Javaw 启原创 2016-05-14 20:50:52 · 327 阅读 · 0 评论 -
JAVA JUnit测试框架
一,JUnit优点: JUnit是单元测试框架,其优点如下: 1.可以同时测(多个方法或多个类同时测) 多个测试用例类同时测 可以把测试用例类添加到测试套件中 2.只看bar就知道测试通过不通过去官方下载 jar 文件 官网: http://junit.org/ 然后导jar包二,写测试用例类1.JUnit3 继承TestCase2.JUnit4 不需要继承TestCase原创 2016-05-13 21:19:02 · 721 阅读 · 0 评论 -
JAVA GUI的介绍
一,GUI what? GUI =Graphical User Interface,图形用户接口、图形用户界面。Java编写带图形界面的程序,有两套API 1,AWT(Abstract Window Toolkit) AWT实现,真正实现是依赖于操作系统提供的底层函数来实现的。2,SWING 不依赖于操作系统的底层实现 纯java写的API 跨平台,组件比AWT多,但界面比较丑,处理事件跟原创 2016-05-01 19:27:06 · 829 阅读 · 0 评论 -
JAVA IO(三)
java中IO分类 按照数据流向分:输入流—————-输出流 按照数据单位:字节流——————字符流 按照是否直接和数据源相连:节点流———处理流一,字节流转换成字符流(转换流) 用InputStreamReader 输入字节流转换成输入字符流FileInputStream fis = new FileInputStream("aaa.txt");Reader reader=new Buf原创 2016-04-17 16:17:59 · 292 阅读 · 0 评论 -
JAVA数据结构--队列
我们去面试的时候可能排成一队等待面试,先来的排在队列前面,后来的排在队列后面,先来的先面试先走,后来的后走。队列特点:先进先出接下来我们说一说队列在数据结构中的抽象概念。 队列的定义: 队列是限制结点插入操作固定在一端进行,而结点的删除操作固定在另一端进行的线性表. 队列的特点 先进先出型,First in first out(FIFO) 队列的基本操作 添加:给队列末尾添加一...原创 2018-04-23 20:32:51 · 231 阅读 · 0 评论