
Java学习
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
6.4 内部类
内部类是定义在其他类里面的类。 好处在于:内部类可以直接使用外部类的方法和属性。内部类对于同包内的其他类是不可见的。匿名内部类可以简化回调函数的代码。其实这点用Lambda更简洁。1 使用内部类获取对象的状态import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import原创 2016-11-27 11:05:48 · 388 阅读 · 0 评论 -
6.5 代理
1 什么时候使用代理运行时才能确定类要实现哪个接口,这样的情况使用代理。Object invoke(Object proxy, Method method, Object[] args)2 创建代理对象import java.lang.reflect.*;import java.util.*;/** * This program demonstrates the use of proxies.原创 2016-11-27 11:06:20 · 332 阅读 · 0 评论 -
7 异常、断言和日志
前面结束了java基本语法的学习,下面深入学习一些特别的内容。7.1 处理错误 7.2 捕捉异常 7.3 关于使用异常的一些提示 7.4 使用断言 7.5 日志 7.6 调试原创 2016-11-29 10:05:26 · 275 阅读 · 0 评论 -
2 Java程序开发环境
2 Java程序开发环境2.1 安装Java开发工具箱2.1.1 下载JDK地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 如果你想学习编写代码的话,下载JDK就好了,注意选择适合你操作系统的版本。2.1.2 安装JDK1.安装JDk 2.设置path **具体请自己搜下教程吧,网上很多的,我就不多此一原创 2016-11-16 22:44:33 · 371 阅读 · 0 评论 -
3.2 注释
我们写程序,不可能满满的都是代码,因为不光是我们自己要执行要看,别人也要看的。写上一些注释,不运行,仅仅留作方便程序员查看这个类这段代码是做什么用的。注释的语句在编译的时候是跳过的,计算机可不用看注释啊,它只要执行就好了嘛。Java有3中注释类型,都在下面代码里啦,照用就好了/** * Created by Brave on 2016/11/17. * 这里是类的注释,斜杠双星,还可以添加作者版原创 2016-11-17 21:35:31 · 392 阅读 · 0 评论 -
3.1 一个简单的Java程序
上次我们执行过一个程序:public class Welcome{ public static void main(String[] args) { System.out.println("Hello, World!"); }}通过控制台我们可以看出,这个程序只是输出了一句话:Hello, World!注意:Java是区分大小写的,比如Main和main是原创 2016-11-17 15:38:09 · 1042 阅读 · 0 评论 -
3.4 变量
在Java里,变量在使用前,必须声明变量的类型。 先说下什么是变量,变量可以理解为一种属性、标签、代号,这个属性可以根据声明的类型的不同而指向各自类型的具体值。 例如:double salary;int vacationDays;long earthPopulation;boolean done;在这段代码里,就声明了4个变量。 看第一个salary变量,可以看出它是个double型变量原创 2016-11-18 08:54:33 · 497 阅读 · 0 评论 -
1 Java概述
1. Java概述Java概述1 Java程序设计平台2 Java白皮书3 Java Applets 和 Internet4 Java的历史5 关于Java常见的误解1.1 Java程序设计平台主要说Java值得学习,值得使用,完整一个平台、有庞大的库、功能齐全的出色的语言,呵。1.2 Java白皮书简单 C++有如下特性:头文件指针运算结构体联合运算符重载虚基类等说实话,原创 2016-11-16 16:42:21 · 300 阅读 · 0 评论 -
3.3 数据类型
Java是强类型语言,这意味着Java里面的变量在使用之前必须先声明类型。(有的语言不用声明类型可以直接使用的,但是用惯了强类型语言,那种弱类型语言总会让我觉得不习惯会出错的感觉)Java里面有8种基本类型,4个是整型,2个是浮点型,1个是字符型(采用Unicode编码的字符),1个是布尔型。1 整型整型指的是整数数字。 类型 占用内存 范围 int 4字节 -21474836原创 2016-11-17 21:59:01 · 644 阅读 · 0 评论 -
7.1 处理错误
输入会出错设备会出错存储会出错代码错误1 异常分类运行时异常一个失败的强制类型转换数组超出异常空指针异常…其他不是运行时异常试图在文件尾部读取数据试图打开不存在的文件试图从给定字符串寻找类,而这个类不存在一旦有运行时异常,那是我们的错,程序没写好。错误和运行时异常属于未检查异常,其他异常成为已检查异常。2 声明已检查异常对于可能出现异常的部位要对异常进行检测。public原创 2016-11-29 10:05:49 · 422 阅读 · 0 评论 -
7.2 捕捉异常
1 捕捉异常try{ //这里写可能发生异常的代码 code more code more code}catch (ExceptionType e){ //一旦发生异常,就会跳转到这里对异常进行处理 handler for this type}例如:public void read(String filename){ try原创 2016-11-29 10:06:12 · 357 阅读 · 0 评论 -
7.3 关于使用异常的一些提示
不要用异常替代简单的测试,因为捕捉一个异常太费时间。不要过分细化异常。要利用异常的层级来处理异常。不要压制异常,对于频率低不重要的异常,忽略处理就是了。在检测错误时,苛刻要比放任好。不要介意传递异常,应该告知调用者,该方法失败啦,自己去考虑怎么解决。原创 2016-11-29 10:06:43 · 628 阅读 · 0 评论 -
13.1 JAR文件
把类文件打包成一个jar文件。1 创建JAR文件jar cvf JARFileName File1 File2 . . .jar cvf CalculatorClasses.jar *.class icon.gifjar options File1 File2 . . .2 清单文件3 可执行JAR文件jar cvfe MyProgram.jar com.mycompany.mypkg.Main原创 2016-12-09 13:17:02 · 365 阅读 · 0 评论 -
13.2 首选项信息的保存
1 属性映射Properties settings = new Properties();settings.setProperty("width", "200");settings.setProperty("title", "Hello, World!");OutputStream out = new FileOutputStream("program.properties");setting原创 2016-12-09 13:17:32 · 430 阅读 · 0 评论 -
13.3 服务加载器
不知道在说什么啊原创 2016-12-09 13:17:52 · 398 阅读 · 0 评论 -
13.4 Applet
1 一个简单的Appletimport java.awt.*;import javax.swing.*;/** 1. @version 1.24 2015-06-12 2. @author Cay Horstmann */public class NotHelloWorld extends JApplet{ public void init() { EventQu原创 2016-12-09 13:18:16 · 385 阅读 · 0 评论 -
13.5 Java Web Start
java原创 2016-12-09 13:18:44 · 425 阅读 · 0 评论 -
14 并发编程
为了赶进度,又开始跳了,希望你被摔着自己哈线程应该是很重要的内容,因为将来毫无疑问会用到。14.1 什么是线程 14.2 中断线程 14.3 线程状态 14.4 线程属性 14.5 同步 14.6 阻塞队列 14.7 线程安全的集合 14.8 Callable和Future 14.9 执行器 14.10 同步器 14.11 线程与Swing原创 2016-12-10 15:03:22 · 255 阅读 · 0 评论 -
3.5 运算符
Java里面会用到很多运算符,例如:+、-、*、/等。/运算符用于计算除法。整型直接相除会得到一个整型,余数直接舍去了:15/2 = 7;如果想要得到余数,用%运算符15%2=1;如果/两边至少有一个是浮点型,那么计算结果也是浮点型,就会有小数啦:15.0/2 = 7.5。整型除以0会爆出一个异常;浮点数除以0会得到NaN或者无穷大。注意:在使用staticfp关键字声明的方法中,该方法内部的运算会原创 2016-11-18 10:17:51 · 553 阅读 · 0 评论 -
14.1 什么是线程
java原创 2016-12-10 15:03:48 · 450 阅读 · 0 评论 -
14.2 中断线程
中断就中断呗原创 2016-12-10 15:04:09 · 353 阅读 · 0 评论 -
14.3 线程状态
线程有6个状态NewRunnableBlockedWaitingTimed waitingTerminated1 新线程new关键字,处于New状态2 运行线程调用start方法,就处于Runnable状态,是可运行状态,有CPU的时间片就运行,没有就被中断。3 被阻塞线程和等待线程4 终止线程运行结束自然死亡出现未捕获异常中止运行原创 2016-12-10 15:04:31 · 477 阅读 · 0 评论 -
14.4 线程属性
1 线程优先级MIN_PRIORITY --> 1NORM_PRIORITY --> 5MAX_PRIORITY --> 102 守护线程为其他线程提供服务的线程t.setDaemon(true);3 未捕获异常处理器说半天不知道扯得啥原创 2016-12-10 15:04:45 · 357 阅读 · 0 评论 -
3.6 字符串
字符串的的常用可想而知。 在Java里,字符串是一系列Unicode字符,用双引号表示。 例如:String e = "";//空串,没有字符String greeting = "Hello";//有5个字符String类是Java自带的表示字符串的类。1 子串很显然,一个字符串可以划分为很多子串,甚至从数学的角度来说,它本身也是自己的子串嘛。 可以用字符串的一个subString()方法来原创 2016-11-19 14:52:35 · 468 阅读 · 0 评论 -
3 Java的基本程序设计结构
开始Java学习之旅吧。3.1 一个简单的Java程序 3.2 注释 3.3 数据类型 3.4 变量3.3 数据类型3.3 数据类型3.3 数据类型3.3 数据类型3.3 数据类型3.3 数据类型原创 2016-11-17 15:37:02 · 323 阅读 · 0 评论 -
3.7 输入和输出
下面学习控制台的输入输出部分。1 读入输入注意:使用Scanner类之前得先导入这个类哈,import java.util.Scanner;1 先用System.in构造一个Scanner类对象。 Scanner in = new Scanner(System.in);2 然后你就可以提示用户输入,就可以读取到了, System.out.println("你叫什么名字?"); String nam原创 2016-11-19 15:17:50 · 530 阅读 · 0 评论 -
7.4 使用断言
1 断言的概念断言的语句,在测试的时候有用,发布产品的时候自动移除。assert 条件assert 条件:表达式;表达式可以用来输出错误信息。2 断言的应用和禁用3 使用断言进行参数检查Java有3种机制处理错误: 1. 抛出异常 2. 日志 3. 断言什么时候用断言:断言失败就是致命的错误。断言语句会在开发和测试的时候用。4 为文档假设使用断言if (i % 3 == 0)原创 2016-11-29 10:06:56 · 365 阅读 · 0 评论 -
7.5 日志
感觉没什么可写的就没写,反正就是关于这方面就不想看了,可能我潜意识里认为这个没用吧…可以很容易就取消日志代码开销很小可以为定向到不同的处理器可以对记录进行过滤可以采用不同的方式格式化输出可以使用多个日志记录器1 基本日志//输出一条日志Logger.getGlobal().info("File->Open menu item selected");//关闭日志Logger.getG原创 2016-11-29 10:07:09 · 285 阅读 · 0 评论 -
7.6 调试
+会自动调用两边的toString方法每个类都可以有一个main方法进行单元类测试,不影响程序的运行。JUnit测试单元。日志代理。用Thread.dumpStack()进行方法栈输出。利用printStackTrace(StringWriter)把日志输出到文件。java Myprogram 2> errors.txt输出到文件…还有一些,不想写了原创 2016-11-29 10:07:30 · 314 阅读 · 0 评论 -
8 泛型编程
起初,那么信誓旦旦的说想要好好学习Java,然而学着学着就开始迷茫怀疑,开始放任不同的知识点存在。这是人的本性吧?以自身价值观判断,没用的就不学呗。不管怎么说,还得继续,毕竟一生这么长。8.1 为什么要泛型编程 8.2 定义一个简单的泛型类 8.3 泛型方法 8.4 类型变量的限定 8.5 泛型代码和虚拟机 8.6 约束与局限性 8.7 泛型类型的继承规则 8.8 通配符类型 8.9原创 2016-12-01 21:20:07 · 263 阅读 · 0 评论 -
3.9 大数
如果基本的精度不满足你的要求,那么你就要实用BigInteger和BigDecimal类来进行计算数字了,这两个类都是进行精确计算的。 值得注意的是,不能够使用运算符直接进行这两个类的计算操作,得用方法。BigInteger a = BigInteger.valueOf(5000000000L);BigInteger b = BigInteger.valueOf(10000000000000L)原创 2016-11-19 15:20:03 · 362 阅读 · 0 评论 -
3.10 数组
数组是相同类型的数据放在一起存储的结果。可以通过序号来引用任何一个元素。 通过如下方式声明数组:int[] a;//此时a-->null,因为没有初始化int d[];//效果同上int[] b = new int[100];//此时b的长度是100,可以存放100个int元素,但是内部每个元素是没有初始化的//声明数组,设置数组长度,并对每个元素进行初始化int[] c = new int原创 2016-11-19 15:20:37 · 470 阅读 · 0 评论 -
4 对象和类
终于写到好玩的地方了…3.1 一个简单的Java程序3.2 注释3.3 数据类型3.4 变量3.5 运算符3.6 字符串3.7 输入和输出3.8 控制流程3.9 大数3.10 数组原创 2016-11-19 22:40:13 · 271 阅读 · 0 评论 -
4.1 面向对象编程
面向过程编程,首重算法,其次数据。 面向对象编程,首重数据,其次算法。1 类简单点说,类就是模板。 一个模板有自己的属性和动作。属性描述了这个类是什么样的,方法体现了这个类能表现出哪些行为。 一个学生类,可能会有个学号的属性,也会进行学习的方法。 这里,每一个类的实例,那就是一个数据啊,这个类实例拥有的方法就是算法。面向对象编程的好处就是去耦合化,把大问题简化成为很多小问题,分别逐个解决。去原创 2016-11-19 22:40:50 · 464 阅读 · 0 评论 -
8.1 为什么要泛型编程
泛型可以提高代码重用率。1 类型参数的优势泛型是利用继承多态的特性实现的。public class ArrayList // before generic classes{ private Object[] elementData; . . . public Object get(int i) { . . . } public void add(Object o)原创 2016-12-01 21:20:34 · 308 阅读 · 0 评论 -
8.2 定义一个简单的泛型类
public class Pair<T>{ private T first; private T second; public Pair() { first = null; second = null; } public Pair(T first, T second) { this.first = first; this.second = second; }原创 2016-12-01 21:21:02 · 737 阅读 · 0 评论 -
8.3 泛型方法
定义一个泛型方法class ArrayAlg{ public static <T> T getMiddle(T... a) { return a[a.length / 2]; }}使用:String middle = ArrayAlg.<String>getMiddle("John", "Q.", "Public");当编译器有足够信息推断出类型时,可以省原创 2016-12-01 21:21:33 · 364 阅读 · 0 评论 -
4.2 使用预定义类
在Java里,所有的工作都必须在类里完成。 当然啦,并不是说有的类都必须有实例。比如,Math类,一些数学计算方法不管什么时间什么地点都是一样的,不能说因为用的时间不一样,4开方就不是2了。但是,房子类就不一样,不同的地方房子是不一样的,虽然都叫房子都是住人的地方。所以,房子类应该有实例,而Math类有实例的意义不大。1 对象和对象变量要使用对象完成工作,第一步就是先有一个对象,就是对一个对象进行原创 2016-11-19 22:41:38 · 806 阅读 · 0 评论 -
8.4 类型变量的限定
class ArrayAlg{ public static <T> T min(T[] a) // almost correct { if (a == null || a.length == 0) return null; T smallest = a[0]; for (int i = 1; i < a.length; i++)原创 2016-12-01 21:22:19 · 398 阅读 · 0 评论 -
14.5 同步
对于修改状态的操作,多线程可能发生冲突。1 一个竞争条件的例子public class UnsynchBankTest{ public static final int NACCOUNTS = 100; public static final double INITIAL_BALANCE = 1000; public static final double MAX_AMOUNT原创 2016-12-10 15:05:02 · 436 阅读 · 0 评论