Java学习
Aseveng
这个作者很懒,什么都没留下…
展开
-
在Sblime Text 3中编译运行java 默认环境已配置好
打开Sublime Text 3,依次点击Preference, Browse Packages,在打开的窗口中双击User文件夹,新建文件JavaC.sublime-build,用记事本打开,粘贴下面的代码并保存关闭:{"cmd": ["javac","-encoding","UTF-8","-d",".","$file"],"file_regex": "^(...*?):([0转载 2017-04-29 21:40:29 · 666 阅读 · 0 评论 -
单例设计模式
一共23种设计模式 设计模式:对问题行之有效的解决方式,他其实是一种思想。单例设计模式解决的问题:保证一个类在内存中的对象唯一性对于必须多个程序使用同一个配置信息对象时,就要保证对象的唯一性。如何保证唯一性1.不允许其他程序用new 创建该类对象2.该类创建一个本类实例3.对外提供一个方法让其他程序可以获取该对象步骤1.私有化原创 2017-04-30 16:34:23 · 311 阅读 · 0 评论 -
Java 链表操作
转自:http://www.jb51.net/article/71885.htm public class LinkList{ public Node head; public Node current;//方法:向链表中添加数据 public void add(int data){ if(head==null){//如果头节点为空,说明这个链表还没创建。把新的结点赋值给头节点转载 2017-05-02 15:19:11 · 600 阅读 · 0 评论 -
Java 包
/*包: 对类文件进行分层管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称是 包名.类名 包也是一种封装形式*/package mypack;// mypack.hehe.hahaclass PackageDemo1{ public static void main(String[] args) { System.out.println("Hellow Pac原创 2017-08-16 14:36:30 · 201 阅读 · 0 评论 -
Java 包与包之间的访问 (类在不同包里)
package mypack; class PackageDemo2{ public static void main(String[] args) { //DemoA d=new DemoA(); packa.DemoA d=new packa.DemoA(); d.show(); System.out.println("Hello package"); }}/*D原创 2017-08-16 20:00:02 · 3119 阅读 · 0 评论 -
Java 四种访问权限
package packb;public class DemoB { /*public*/protected void method() {//保护 只能子类访问此功能 System.out.println("Hello DemoB"); }}/*四种权限总结: 包与包之间的类进行访问,被访问的包中的类必须是public的 被访问的类中的方法也必须是public的原创 2017-08-16 20:58:13 · 311 阅读 · 0 评论 -
Java import 导入包中类
package mypack; import packa.DemoA;//导入了 packa包中的 DemoA类 import packa.*;//导入类,只能导入类 //packa\abc\DemoABC.class//需要 import packa.abc.*;//开发不建议导入*// 导包的原则 用到那个类 导入那个类 不管多少个//import 干嘛用的? 为了简化类原创 2017-08-16 22:50:31 · 6925 阅读 · 0 评论 -
Java Jar包
/*Jar:java的压缩包*/package pack;class JarDemo{ public static void main(String[] args) { System.out.println("Hello Jar"); }} //./pack//.haha.jar/pack/*D:\毕Java\包>set classpath=./haha.ja原创 2017-08-16 23:08:20 · 260 阅读 · 0 评论 -
cmd 下 javac 错误:编码GBK不可映射字符
。两种方法 1、用记事本打开 另存为 编码 选择为ANSI 保存2、在cmd窗口下执行javac命令是,写为javac -encoding utf-8 -d . 文件名转自http://blog.csdn.net/u012848709/article/details/52719045转载 2017-08-16 23:22:47 · 408 阅读 · 0 评论 -
Java 多线程 简介
/*进程:正在进行中的程序(直译)其实对应 在内存中开辟的空间线程:进程中的一个负责程序执行的控制单元(执行路径)一个进程中可以有多个执行路径,称为多线程一个进程中至少有一个线程 开启多个线程是为了同时运行多部分代码每一线程都有自己运行的内容,这个内容可以称为线程要执行的任务多线程 能解决多个部分同时执行弊端 效率低(cpu切换的太多了 ) 其实应用程序的执行都是原创 2017-08-17 14:47:10 · 202 阅读 · 0 评论 -
Java 多线程的创建 ---继承Thread类
/*如何创建一个线程创建线程方式一:继承Thead类步骤1 定义一个类继承Thead类2 覆盖Thread类中的run方法3 直接创建Thread的子类对象创建线程4 调用start方法开启线程并调用线程任务的run方法执行*/class Demo extends Thread{ private String name; Demo(String name){ thi原创 2017-08-17 15:22:50 · 702 阅读 · 0 评论 -
java 多态 成员变量
/* 多态时 成员的特点: 1.成员变量 编译时:参考引用型变量所属类中是否有调用的成员变量,有 编译通过,没有 编译失败 运行时:参考引用型变量所属类中是否有调用的成员变量,并运行该所属类中的成员变量 简单说:编译和运行都参考等号 左边 2 成员函数 3 静态函数 */ class Fu{ int num=3; } class Zi extends原创 2017-08-10 14:21:34 · 654 阅读 · 0 评论 -
Java 多态
/* class 动物{ } class 猫 extends 动物{ } class 狗 extends 动物{ } 猫 x =new 猫(); 动物 x= new 猫();// 一个对象两个形态 猫这类事物既具备猫的形态 又具备作着动物的形态 这就是对的多态性 简单的说 就是一个对象对应着不同的类型 父类或者接口的引用指向其子类的对象原创 2017-08-10 13:53:51 · 188 阅读 · 0 评论 -
Java Thread 类中的方法和线程名称
/*如何创建一个线程创建线程方式一:继承Thead类步骤1 定义一个类继承Thead类2 覆盖Thread类中的run方法3 直接创建Thread的子类对象创建线程4 调用start方法开启线程并调用线程任务的run方法执行可以通过Thread的getName获取线程的名称 Thread-编号(从0开始) 一创建对象时就有编号主线程的名字就是main*/class D原创 2017-08-17 15:44:39 · 852 阅读 · 0 评论 -
Java 多线程内存
创建新的现成后 就会有新的栈空间 与主函数 不同的空间 任意栈空间异常或结束 不影响其他栈空间 Exception in thread “main” 异常在 主函数线程中原创 2017-08-17 16:09:26 · 285 阅读 · 0 评论 -
java 多态 成员函数
多态时 成员的特点: 1.成员变量 编译时:参考引用型变量所属类中是否有调用的成员变量,有 编译通过,没有 编译失败 运行时:参考引用型变量所属类中是否有调用的成员变量,并运行该所属类中的成员变量 简单说:编译和运行都参考等号 左边 2 成员函数(非静态)动态绑定 谁调用我 我绑定谁 依赖指定对象 编译时:参考引用型变量所属类中是否有调用的函数 有 编译通过 没有 编译原创 2017-08-10 17:09:34 · 464 阅读 · 0 评论 -
java 内部类概述
/* 内部类 将一个类定义在另一个类的内部, 里面的那个类成为内部类(内置类,嵌套类) 内部类的访问特点: 1.内部类可以直接访问外部类的成员 2.外部类要访问内部类,必须建立内部类的对象 一般用于类的设计 分析事物时,发现该事物描述中还有事物,而且这个事物还在被描述事物的内部 这时就是还有事物定义成内部类来描述 */class Outer{ pr原创 2017-08-10 21:12:32 · 216 阅读 · 0 评论 -
线程的状态图
原创 2017-08-17 23:40:48 · 414 阅读 · 0 评论 -
Java 创建多线程的第二种方式
/*创建线程的第一种方法:继承Thread类创建线程的第二种方法:实现Runnable接口1 定义类实现Runnable接口2 覆盖接口中的run方法,将线程的任务代码封装到run方法中3 通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread构造函数的参数进行传递//为什么 ?因为线程的任务都封装在Runnable接口子类对象的run方法中//所以要原创 2017-08-18 08:59:05 · 324 阅读 · 0 评论 -
java 内部类
/* 内部类 将一个类定义在另一个类的内部, 里面的那个类成为内部类(内置类,嵌套类) 内部类的访问特点: 1.内部类可以直接访问外部类的成员 2.外部类要访问内部类,必须建立内部类的对象 一般用于类的设计 分析事物时,发现该事物描述中还有事物,而且这个事物还在被描述事物的内部 这时就是还有事物定义成内部类来描述 */class Outer{ pr原创 2017-08-11 09:16:25 · 288 阅读 · 0 评论 -
java 内部类 局部类 细节
/*为什么内部类能直接访问外部类中的成员呢?因为内部类持有了外部类的引用 ----外部类名.this */class Outer{ int num=3; class Inner{ int num=4; void show1(){ int num=5; System.out.println(num); } void show2(){ int num=原创 2017-08-11 10:05:50 · 263 阅读 · 0 评论 -
Java 方法的内部类访问 方法的局部变量
在Java中 方法的内部类可以访问方法的局部变量 但必须用final修饰原因一, 当方法被调用运行完毕之后,局部变量就已消亡了。但内部类对象可能还存在, 直到没有被引用时才会消亡。此时就会出现一种情况,就是内部类要访问一个不存在的局部变量。 二,解决这一问题的办法就是使用final修饰局部变量,通过将fi转载 2017-08-11 10:30:40 · 1216 阅读 · 0 评论 -
Java 匿名内部类 概述
学习于 毕向东java/*匿名内部类 : 就是内部类的简写方式 必须有前提: 内部类必须继承或者实现一个外部类或者接口匿名内部类:其实就是一个匿名子类对象格式: new 父类or接口(){子类内容}*/abstract class Demo{ abstract void show(); }class Outer{ int num =4; class Inner原创 2017-08-11 15:24:56 · 354 阅读 · 0 评论 -
Java 匿名类内部类 应用
interface Inter{ void show1(); void show2();}/*通常的使用场景之一当函数参数是接口类型时,而且接口中的方法不超过三个(1or2) 太多不利于阅读性可以用匿名内部类作为实际参数进行传递*/class Outer{ class Inner implements Inter{ public void show1(){ }原创 2017-08-11 16:58:35 · 291 阅读 · 0 评论 -
java new子类对象过程
class Fu { int num=8; Fu(){ System.out.println("Fu construction run"); show();//第三步 但show方法被子类覆盖 子类show } void show(){ System.out.println("Fu num----"+num); }/* { System.out.println("fu原创 2017-08-11 19:46:31 · 873 阅读 · 0 评论 -
Java equals方法覆盖
/* Object:所有类的根类 Object 是不断抽取而来的,具备着所有对象都具有的共性 */ class Person extends Object{ private int age; Person(int age){ this.age=age; } /* 一般都会覆盖此方法(equals),根据对象的特有内容,建立判断对象是否相同的依据 */ p原创 2017-08-12 21:51:15 · 456 阅读 · 0 评论 -
java 异常2
/*异常:是在运行时期发生的不正常情况在Java中用类的形式对不正常情况进行了描述和封装对象描述不正常的情况的类,称为异常类以前正常代码和问题处理代码相结合 // if(time<0){ 处理方法}现在将正常代码和 问题处理代码 相分离,调高了阅读性其实一场就是Java通过面向对象的思想将问题封装成了对象用异常类对其描述不同的问题用不同的类进行具体的描述 比如角标越界 空原创 2017-08-13 16:13:49 · 415 阅读 · 0 评论 -
Java 异常抛出
class Demo{ public void method(int []arr,int index){ System.out.println(arr[index]);//(虚拟机 先new 再 throw给主函数) throw new ArrayIndexOutBoundsException(idnex) }}class ExceptionDemo2{ public stati原创 2017-08-13 16:41:38 · 247 阅读 · 0 评论 -
Java 多线程 线程安全问题
/*线程安全问题产生发原因:1 多个线程在操作同一个数据2 操作共享数据的线程代码有多条当一个线程在执行操作共享数据的多条代码过程中 其他线程参与了运算就会导致线程安全问题的产生*/class Ticket implements Runnable{ private int num=100; public void run(){ while(true){ if(n原创 2017-08-20 20:58:38 · 307 阅读 · 0 评论 -
Java 自定义异常 异常抛出
/*对于角标是整数不存在 可以用角标越界表示对于负数为角标的情况 准备用负数角标异常来表示负数角标这种异常在Java中没有定义过那就按照Java 异常的创建思想 面向对象 将负数角标进行自定义描述 并封装成对象这种自定义的问题描述称为自定义异常注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为体系的子类才具备可抛性 才可以被两个关键字 所操作,throws thro原创 2017-08-14 12:36:31 · 1878 阅读 · 0 评论 -
Java 异常 try catch
毕向东Java 学习原创 2017-08-14 15:53:31 · 333 阅读 · 0 评论 -
Java 死锁例子
/*死锁:产生死锁的原因之一 同步的嵌套本应该无限打印 但死锁会停止打印*/class Test implements Runnable{ boolean flag=true; Test(boolean flag) { this.flag=flag; } public void run(){ if(flag){ while(true){ synchroni原创 2017-08-24 16:50:05 · 231 阅读 · 0 评论 -
Java 多catch
/*异常 多catch*/class FuShuIndexException extends Exception{ FuShuIndexException(){ } FuShuIndexException(String msg){ super(msg); }}class Demo{ public int method(int []arr,int index)throw原创 2017-08-14 20:54:20 · 539 阅读 · 0 评论 -
Java 异常
/*异常:是在运行时期发生的不正常情况在Java中用类的形式对不正常情况进行了描述和封装对象描述不正常的情况的类,称为异常类以前正常代码和问题处理代码相结合 // if(time<0){ 处理方法}现在将正常代码和 问题处理代码 相分离,调高了阅读性其实一场就是Java通过面向对象的思想将问题封装成了对象用异常类对其描述不同的问题用不同的类进行具体的描述 比如角标越界 空原创 2017-08-13 10:00:43 · 299 阅读 · 0 评论 -
Java 字节码文件Class(大写C) 和getClass方法
人抽取出 Person 对象 class 抽取出 Class(自解码文件类名)、先产生自解码文件 在产生类对象getClass方法 返回 自解码Class文件 Class clazz1=p1.getClass(); Class clazz2=p2.getClass(); System.out.println(clazz2==clazz1); Sys原创 2017-08-16 00:37:15 · 809 阅读 · 0 评论 -
Java 同步问题
/*线程安全问题产生发原因:1 多个线程在操作同一个数据2 操作共享数据的线程代码有多条当一个线程在执行操作共享数据的多条代码过程中 其他线程参与了运算就会导致线程安全问题的产生解决思路:就是将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候其他线程不可以参与运算必须要当前线程把这些代码都执行完毕后,其他线程才可以参与运算在Java中 用同步代码块就可以原创 2017-08-21 21:49:26 · 330 阅读 · 0 评论 -
Java 异常finally 代码块
/*finally 一定会执行到除非System.exit(0) //退出jvm*/class Demo{ public int show(int index)throws ArrayIndexOutOfBoundsException{ if(index<0) throw new ArrayIndexOutOfBoundsException("越界了"); int []原创 2017-08-15 11:07:20 · 349 阅读 · 0 评论 -
Java 同步问题2
/*线程安全问题产生发原因:1 多个线程在操作同一个数据2 操作共享数据的线程代码有多条当一个线程在执行操作共享数据的多条代码过程中 其他线程参与了运算就会导致线程安全问题的产生解决思路:就是将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候其他线程不可以参与运算必须要当前线程把这些代码都执行完毕后,其他线程才可以参与运算在Java中 用同步代码块就可以原创 2017-08-22 12:01:14 · 234 阅读 · 0 评论 -
Java 多线程的通信
/*线程间通信:多个线程在处理同一资源,但是任务不同*/class Resource{ String name; String sex;}class Input implements Runnable{ Resource r; Input (Resource r){ this.r=r; } public void run(){ int x=0; whi原创 2017-08-25 16:07:21 · 226 阅读 · 0 评论 -
Java 多线程间的通信 等待唤醒
/*有两个线程 一个给名字和性别赋值(input) 一个输出名字和性别(output) 但会一下输出很多同样的名字和性别(cpu没切走)用等待唤醒机制 就可以 1 赋值一个 然后input wait 唤醒output 2 输出一个 output wait 再唤醒input 这样可以赋值一个 就输出一个 等待/唤醒机制。涉及的方法:1 wait(); 让线程处于冻结状态,被wait原创 2017-08-25 19:37:43 · 300 阅读 · 0 评论