java
Paul-LangJun
凡事预则立,不预则废。
展开
-
二分查找注意事项及其变形
一、实现public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <= high) { int mid = (low + high) / 2; if (a[mid] == value) { return mid; }...原创 2020-01-13 13:09:16 · 187 阅读 · 0 评论 -
理解均摊时间复杂度
均摊时间复杂度分析,又叫摊还分析(或者叫平摊分析)。均摊时间复杂度,听起来跟平均时间复杂度有点儿像。对于初学者来说,这两个概念确实非常容易弄混。大部分情况下,我们并不需要区分最好、最坏、平均三种复杂度。平均复杂度只在某些特殊情况下才会用到,而均摊时间复杂度应用的场景比它更加特殊、更加有限。我还是借助一个具体的例子来理解。 // array表示一个长度为n的数组 // 代码中...原创 2019-12-26 15:28:45 · 4103 阅读 · 0 评论 -
java管道流的使用示例
import java.util.*;import java.io.*;/** * 本程序通过管道流实现了一个双人聊天室, 同一时刻只能有一个人在说,另外一个人在听,交替执行,某一方发出exit命令后,两个线程同时 * 结束运行,表明双方同时离开聊天室 * @author Administrator * */class Talker extends Th原创 2014-03-19 20:28:59 · 921 阅读 · 0 评论 -
双线程实现超大型3000*3000矩阵的转置
import java.util.Random;//主类public class Root { public static int time = 0; public static void main(String[] args) throws InterruptedException { // 矩阵的行列数目 final int ROW_NUM = 30原创 2013-11-22 23:14:43 · 994 阅读 · 0 评论 -
java基础之高级应用
在程序中涉及方法重写的地方使用@override Annotation(只作用于方法)注释可以很好的避免由于重写方法名字过长而造成的程序后期出现的难以调试的错误,特别是程序没有报任何的错误时,而程序的运行结果并没有和我们预期的结果一样时,可以考虑使用该方法。 通过Annotation可以简化事件编程,例如可以通过注释的方式为控件绑定事件监听器。 通常情况下,对象的引用若要访问类的方原创 2013-07-24 15:36:19 · 896 阅读 · 0 评论 -
巧用修饰符
1.final可以修饰函数的参数,以防止函数内部随意篡改不允许修改的参数。2.在函数内部,把函数的局部变量声明为final类型,可以检查在函数内部它们是否的确只被赋值一次。原创 2013-06-30 22:36:38 · 631 阅读 · 0 评论 -
程序实现搜索迷宫出口完整版
import java.awt.*;import java.awt.List;import java.awt.event.*;import java.util.*;import javax.swing.JOptionPane;//驱动类public class tanchishe { public static void main(String[] args)原创 2013-01-26 12:19:37 · 1280 阅读 · 0 评论 -
浅谈java多线程之创建线程方式
多线程在软件开发中用得很多,现在几乎所有的软件都用到了多线程,如:QQ、迅雷、eclipe集成开发环境等。什么是多线程?当一个程序启动后就是一个进程,可以理解进程就是CPU的一个执行流程,而多线程就是在一个进程内执行多个线程,相当于在一个执行流程内开辟多个执行序列,举个例子:一个服务员每天要做端菜、洗碗、拖地等事情,每件事情可以理解为一个执行流程,让他开始洗碗那么他必须要把碗洗完了原创 2013-07-26 09:40:17 · 568 阅读 · 0 评论 -
StringBuffer与StringBuilder的异同
一.相同之处 1.均是可变字符序列,可以随机的改变字符串,如追加操作或插入操作2.均使用了内部缓冲区,并且当内部缓冲区溢出后均会自动增大二.不同之处 1. StringBuffer在多线程环境下使用是线程安全的,但请注意:当发生与源序列有关的操作(如源序列中的追加或插入操作)时,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步--------原创 2013-07-29 17:38:00 · 1172 阅读 · 0 评论 -
没有main方法的java程序
现在才知道, 并不是每一个java程序都需要main方法。原创 2014-07-26 21:53:13 · 1498 阅读 · 6 评论 -
java中共享内存的实现
JDK1.4里面的MappedByteBuffer为开发人员在java中实现共享内存提供了良好的方法,该缓冲区实际上是一个磁盘文件的内存映像,二者的变化会保持同步,即内存数据发生变化过后会立即反应到磁盘文件中,这样会有效的保证共享内存的实现,将共享文件和磁盘文件建立联系的是文件通道类:FileChannel,该类的加入是JDK为了统一外围设备的访问方法,并且加强原创 2020-05-12 14:38:44 · 16692 阅读 · 1 评论 -
简述多态在C++与Java中的异同
多态是面向对象的三大特性之一,它使程序可以在运行时动态的绑定要执行的方法。在Java和C++中,有动态绑定静态绑定之分,今天我们就简单聊聊两种绑定在两种语言中的异同。 先对动态绑定和静态绑定两个概念做一个简单介绍。 1、动态绑定 只有在运行时刻才能决定调用哪一个类的方法就是动态绑定。 2、静态绑定 在编译时刻就已经确定了...原创 2019-06-28 15:20:28 · 228 阅读 · 0 评论 -
Java并发容器之CopyOnWriteArrayList
原文链接:https://www.cnblogs.com/dolphin0520/p/3938914.html Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了...转载 2019-05-10 16:24:56 · 90 阅读 · 0 评论 -
Android手机监控应用(二)
// http service 服务类package com.example.chinaso.appcrawlermaster;import android.app.Service;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.PixelFormat;imp...原创 2019-01-25 16:35:11 · 252 阅读 · 0 评论 -
Android手机监控应用(一)
// 客户端部分<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0&quo原创 2019-01-25 16:29:22 · 811 阅读 · 0 评论 -
再谈线程
1 .创建线程的两种方式中,应该优先选择使用实现了Runnable接口的方式,并重写内部的Run方法。2. 优点在于:可以实现多继承,可以共享实现了Runnable接口的类中的变量或者说是属性3. 当主线程结束的时候,其他线程不受影响,并不会随之结束。一旦子线程启动起来后,它就拥有和主线程相同的地位,它不会受主线程的影响4. 前台线程创建的子线程默认是前台线程,后台线程创建的线原创 2013-07-24 16:29:34 · 811 阅读 · 0 评论 -
开发有标题的ListView
第一步: 老生常谈, 首先定义相关的布局文件, 和普通的ListView一样, 不再赘述;第二步: 定义一个实体类, 用该实体类来存储一个标题以及该标题下的所有Item的数据,具体示例代码如下;public class MealCategoryEntity { private String mCategoryName; // Item列表, 不...原创 2015-02-05 18:06:55 · 5157 阅读 · 3 评论 -
Java通用程序设计与集合方法总结
一. equals() VS “==” equals() 通常用来比较两个引用所指向的对象的内容是否相等;而 “==”通常比较的事两个引用所指向的对象是否为同一个对象,即是否引用了同一个内存地址;那么不难推断出,如果两个对象相等,那么它们一定相互 equals(),而两个对象相互equals()却不一定相等。 二. 在类内部的方法可以访问对象的私有实例变量原创 2013-03-16 23:20:25 · 2300 阅读 · 0 评论 -
异常笔记
一:异常指的是在Java程序运行期出现的错误 二:JAVAC.AAA.JAVA 命令行参数运行JAVA程序格式(AAA为类名)JAVA.AAA 三:JAVA异常是一种用来处理程序中出现的错误而提供的一种机制 四:异常生成时会出现异常事件,生成一个异常对象,封装了异常类的信息,抛给JAVA运行时系统,这个过程称之为异常跑出 五:当JAVA运行时系统介绍到异常原创 2013-04-26 22:04:18 · 738 阅读 · 0 评论 -
浅析java的类加载器
类加载器的委托机制•当java虚拟机需要加载一个类时,到底派哪个类加载器去加载哪?–首先当前线程的类加载器去加载线程中的第一个类–如果类A引用了类B,java虚拟机将引用加载类A的类装载器来加载类B–还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类 •每个类加载器加载类时,右先委托给其上级类加载器–当所有祖原创 2013-07-29 08:41:33 · 637 阅读 · 0 评论 -
浅析JAVA与Tomcat的类装载器
java虚拟机中内嵌了一个称为Bootstrap的类装载器,它属于java虚拟机的内核,不用类装载器装载。Bootstrap类装载器负责加载java核心包中的类(rt.java文件中的类),这些类的Class.getClassLoader()方法返回值为null,即表示是Bootstrap类装载器,因此,在自己编写的程序中应格外小心使用这些类的getClassLoader()方法,避免抛出空指针异原创 2013-05-14 22:08:58 · 666 阅读 · 0 评论 -
浅谈java中的单态设计模式
设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就想是经典的棋谱,不同的棋局,我们用不同的棋谱,免得我们自己再去思考和摸索。失败为成功之母,但是要以大量的时间和精力为代价,如果有成功经验可借鉴,没有人再愿意去甘冒失败的风险,我们没有理由不去了解和掌握设计模式,这也是Java开发者提高自身素质的一个很好选择。使用设计模式也许会制约你去创新,不过真正有原创 2013-03-13 22:39:50 · 989 阅读 · 0 评论 -
java IO流笔记
一. 带读取或写入的目标文件必须放置于当前的工作目录当中,被读取的文件应该实际存在,否则会抛出异常。原创 2013-04-26 21:30:56 · 622 阅读 · 0 评论 -
程序设计一览
面向接口编程是java里面大家公认的第一原则优先使用组合而非类继承 Ø Java程序设计基本原则 ·开闭原则 简单点说就是对新增开放,对修改封闭。而且应尽量做到不用修改模块的源代码,就能更改模块的更能。 ·依赖性倒置原则 这个原则就是依赖抽象而不是依赖具体的实现原创 2013-07-25 13:09:36 · 894 阅读 · 1 评论 -
乱码问题原理分析
中文乱码问题的由来 在计算机中,只有二进制的数据,不管数据是在内存中,还是在外部存储设备上。对于我们所看到的字符,也是以二进制数据的形式存在的。不同的字符对应二进制的规则就是字符编码。字符编码的集合称为字符集。常用的字符集简介 ASCII字符编码集是较早出现的字符编码集合,它使用一个字节来表示256种不同的字符。ASCII字符集是如今最通用的单字节编码系统。 ISO-88原创 2013-08-14 20:12:13 · 1278 阅读 · 0 评论 -
动态代理的工作原理图
原创 2013-07-29 16:31:00 · 947 阅读 · 0 评论 -
简单的词法分析程序
//入口类import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.原创 2013-07-27 20:34:52 · 800 阅读 · 0 评论 -
栈的应用之简易计算器的实现
import java.awt.FlowLayout;import javax.swing.*;/** * 简易算术运算器 * @author Administrator * 右括号问题 * 最后一次计算问题 * */public class CalculaterFrame { public static void main(String[] args){原创 2013-08-01 20:54:23 · 2444 阅读 · 0 评论 -
学好JAVA的十大良好习惯总结
学好JAVA的十大良好习惯总结国家队每一次踢球失败后都要说这么一句:我们回去后要好好总结,下次会打得更好!总结不代表就能改过原有的不足,也不代表就能进步了(一)充分利用MSDN因为我个人觉得它胜过任何一本编程参考书MSDN是 Microsoft 当前提供的有关编程信息的最全面的资源,它包含微软最新的技术数据库,加上易学易用的全文检索功能,让您迅速找到任何您需要的技术参考数据原创 2013-07-25 13:32:59 · 679 阅读 · 0 评论 -
java NIO概述
一 什么是线层阻塞? 线程阻塞即线程高风亮节让出或放弃CPU,暂停执行,只有等到导致阻塞的原因解除,才能恢复运行;或者被其他线程中断,该线程会退出阻塞状态,并且抛出InterrutedException.二 常见的导致线程阻塞的原因: 线程执行了Thread.sleep(intn)方法,线程放弃CPU,睡眠n毫秒,然后恢复运行。但是此时被该线程所控制的同步代码...原创 2019-08-15 13:53:48 · 1443 阅读 · 0 评论 -
测试方法
程序调试五部曲 •1.确定错误的存在•2.收集错误信息•3.分析错误信息•4.消除错误•5.修改的验证 解决测试难题的策略 •简化问题•不要忽略显而易见的东西•小心错误的假定•从其他的角度看问题•从相反的方面去做•注意,什么信息也收集不到,这种情况本身就是一种信息•不要偏向某种解决方法•考虑使用例子•休息原创 2013-07-29 16:52:11 · 564 阅读 · 0 评论