Java基础
文章平均质量分 66
张鹿鹿
这个作者很懒,什么都没留下…
展开
-
Java 中OKHTTP的使用
准备工作 开始今天的内容之前, 我们需要将下面三个包导入: okhttp : 用于文件下载和上传 okio: 用于文件的传输(和okhttp绑定) kxml: xml的pull解析简单的文件下载 我们使用两种方式来下载天狗网上的json数据直接下载方式 直接执行的方式 public static void main(String[] args) { //创原创 2016-08-20 09:51:05 · 7517 阅读 · 1 评论 -
Java多线程与并发(六)之线程池
android培训——我的java笔记,期待与您交流!线程池 在说线程池之前我们先说一下线程的生命周期, 如下图, 涵盖了我们之前说到的大部分方法, 也算是回顾一下 线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建一定数量的线程, 放入空闲队列中,然后对这些资源进行复用。减少频繁的创建和销毁对象。 jdk1.5版本以上提供了现成的线程池。 Java里面线程池的顶级接原创 2016-05-16 23:38:12 · 1380 阅读 · 0 评论 -
Java文件与IO(四)之其他流
android培训——我的java笔记,期待与您交流! 注: 本博客中讲述的其他流包括: 打印流,对象流,字节数组流,字符串流 剩下的几种流在后续Android学习中用到较少,所以我就把他们集中起来放到一篇博客中,所以说得不是特别的详细,或简单一过打印流 打印流的主要功能是用于输出,在整个IO包中打印流分为两种类型: 字节打印流: PrintStream 字符打印流: P原创 2016-05-16 11:12:07 · 1166 阅读 · 0 评论 -
Java设计模式之观察者设计模式
概述 观察者设计模式, 它定义了一种一对一或者一对多的依赖关系,让多个观察者同时监听某一个主体对象,当这个对象发生变化时,会通知所有观察者对象,使他们能够自动更新自己。通俗点说就是,当被观察者对象发生变化时,所有观察他的人即所有观察者都会被通知到,然后观察者根据返回的数据进行相应操作。解决的问题 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不转载 2016-05-24 11:47:27 · 1177 阅读 · 0 评论 -
Java多线程与并发(三)之死锁
android培训——我的java笔记,期待与您交流!死锁 过多的同步有可能出现死锁, 死锁的操作一般是在程序运行的时候才有可能出现。这就好比两个人相向开车堵了, 但是谁也不让谁,会一直堵下去。程序中也一样,如果发生了死锁,程序并不会报错,而是卡在那不动了。 多线程中要进行资源的共享, 就需要同步, 但同步过多,就可能造成死锁 程序中出现死锁的一般原因就是在当前的同步方法中调用了原创 2016-05-11 10:50:33 · 1773 阅读 · 1 评论 -
Java多线程与并发(二)之线程同步
android培训——我的java笔记,期待与您交流!线程同步1 . 多线程共享数据 在多线程操作中, 多个线程有可能同时处理同一个资源, 这就是多线程中的共享数据。 举个不太恰当的例子简单理解一下,图中是小新家的厕所茅坑,但是家里只有一个那这就是一个“资源”,那么家里的所有人都共享这同一个“资源”,也就是所谓的多线程共享数据 可以明显的看出多线程共享数据带来的问题,就是会造成数据的不原创 2016-05-10 23:40:14 · 1925 阅读 · 0 评论 -
Java多线程与并发(一)之概念及操作方法
android培训——我的java笔记,期待与您交流!进程和线程的概念 进程:一个具有独立内存空间的执行程序 线程:是进程中的其中一条执行路径(多条就是多线程),每个进程最少有一个进程 同一个进程中的多个线程共享同一个内存空间我们Windows中任务管理器中的就是进程 如图所示, 在进程中肯可能包含多个线程,也可以说是多条执行路径, 每个线程之间还可能会有交叉(数据的沟通)原创 2016-05-08 20:47:31 · 1477 阅读 · 1 评论 -
Java设计模式之模板方法设计模式
模板方法设计模式 android培训——我的java笔记,期待与您交流! 较为官方的定义: 模板方法设计模式(Templete Method): 定义一个操作中的算法的骨架, 而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。模板方法设计模式较为简单, 在Android中使用的非常常见!, 所以我们务必认真理解其内部原理.原创 2016-05-08 20:05:44 · 912 阅读 · 0 评论 -
Java多线程与并发(四)之中断线程
android培训——我的java笔记,期待与您交流!中断线程 中断线程, 在jdk的Api文档中的方法都已经过时, 原因在于其中的方法有可能会出现死锁,虽然几率非常小,但还是不推荐使用. 那我们如何去中断线程呢? 我们可以自己设计标记!下面是一个关于中断线程简单的例子, 跟大家交流一下。先写一个继承Runnable的任务类, 在该类设置了一个标记, 用于判断什么时候中断class My原创 2016-05-13 08:47:05 · 1322 阅读 · 0 评论 -
Java多线程与并发(五)之生产者与消费者案例
android培训——我的java笔记,期待与您交流!生产者与消费者应用案例 多线程的开发中有一个经典的操作案例,就是生产者-消费者,生产者不断生产产品,消费者不断取走产品。 例如: 饭店里的有一个厨师和一个服务员,这个服务员必须等待厨师准备好膳食。当厨师准备好时,他会通知服务员,之后服务员上菜,然后返回继续等待。这是一个任务写作的示例,厨师代表生产者,而服务员代表消费者。首先我们需要创原创 2016-05-13 09:22:14 · 4412 阅读 · 2 评论 -
Java设计模式之策略设计模式
android培训——我的java笔记,期待与您交流!策略设计模式策略设计模式(Strategy Pattern), 定义了一系列的算法, 将每一种算法封装起来并可以相互替换使用, 策略设计模式让算法独立于使用它的客户应用而独立变化. 注: OO设计原则: 1, 面向接口编程 (面向抽象编程) 2, 封装变化 3, 多用组合, 少用继承下面我们就用一个例子来说明一下策略设计原创 2016-05-14 00:06:20 · 1383 阅读 · 0 评论 -
Java设计模式之简单工厂设计模式
android培训——我的java笔记,期待与您交流!工厂设计模式 简单工厂设计模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂设计模式是工厂设计模式家族中最简单实用的模式我们还是通过例子进行说明 实例场景:假设就是一个工厂生产phone和tv,他们都有一个共同的方法working(),于是我们定义了一个统一的接口Work,让其子类实现该接口interface Work{原创 2016-05-14 08:51:47 · 1533 阅读 · 0 评论 -
Java设计模式之代理设计模式
android培训——我的java笔记,期待与您交流!代理设计模式 代理设计模式(Proxy) : 为其他对象提供一种代理以控制对这个对象的访问。 代理设计模式说白了就是“真实对象”的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途。实例场景:这是一个给老婆买国外化妆品的故事,国外的化妆品购买一般会通过代理去做,也就是让他们去购买,评估和售后首先我们需要定义主题(接原创 2016-05-14 09:22:09 · 1409 阅读 · 0 评论 -
Java设计模式之适配器模式
android培训——我的java笔记,期待与您交流!适配器模式 适配器模式(Adapter): 将一个类的接口转换成客户希望的另外的一个借口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 注:适配器模式在后续Android课程中用到的非常之多,务必学懂!我们可以从一个电源接口适配器的例子中加深理解定义两个电源接口和其相应子类, 不过他们的内部方法不同!int原创 2016-05-14 09:38:11 · 1195 阅读 · 0 评论 -
Java数据结构之链表的实现
android培训——我的java笔记,期待与您交流!链表的实现 在链表数据结构中,我们需要使用到递归算法。 递归算法是一种直接或间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述间接而且容易理解。 但是递归必须要有出口,否则会递归过多造成内存溢出首先构造一个节点类/** * 节点类 * @author zll */cla原创 2016-05-15 09:07:39 · 1282 阅读 · 0 评论 -
Java数据结构之二叉树的实现
android培训——我的java笔记,期待与您交流!二叉树的实现 树(Tree)是一种重要的非线性的数据结构,直观的看,它是数据元素(在树中称为节点)按分支关系组织起来的结构。 二叉树(Binary Tree)是每个节点最多有两个子树的有序树。通常子树被称作“左子树”和“右子树”。二叉树的排序规则:选择第一个元素作为根节点之后如果元素大于根节点放在右子树,如果元素小于根节点,则放在原创 2016-05-15 10:14:54 · 1406 阅读 · 0 评论 -
Java文件与IO(一)之字节流
android培训——我的java笔记,期待与您交流!File类1, 基本概念 File 类: 位于java.io包下, 表示文件和目录路径名的抽象表示形式 File类可以实现文件的创建,删除,重命名,得到路径和创建时间等等, 是唯一与文件本身有关的操作类.2, File类的主要操作方法 字节流1, IO流概述 IO流: 输入输出流(input/output) 流是一组有顺序的原创 2016-05-15 15:39:35 · 1305 阅读 · 1 评论 -
Java文件与IO(二)之字符流
android培训——我的java笔记,期待与您交流!字符流Reader用于读取字符流的抽象类。 子类必须实现的方法只有read(char[], int, int) 和close()。但是,多数子类将重写此 处定义的一些方法,以提供更高的效率和/或其他功能。 使用FileReader类进行实例化操作。Writer写入字符流的抽象类。 子类必须实现的方法仅有write(char[], int,原创 2016-05-15 17:13:06 · 1186 阅读 · 0 评论 -
Java中的Http连接
使用http链接, 访问网站的json数据并转换成实体类对象 API接口官网: http://www.tngou.net/ public static<T> T getDataFromHttp(String url, String method, Map<String, ?> parameter, Class<T> type){ StringBuilder builde原创 2016-08-19 19:16:56 · 1911 阅读 · 0 评论 -
Java中的Socket
UDP 聊天案例 package org.lulu.learn;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.UnknownHostException;import jav原创 2016-08-17 17:28:45 · 1065 阅读 · 0 评论 -
Java中doGet, doPost方法和文件上传
index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><form action="/test" method="post" enctype="multipart/form-data"> <table >原创 2016-08-16 20:30:24 · 4882 阅读 · 0 评论 -
Java安装 基本类型 分支语句
Day01-AndroidDay01-AndroidJava安装基本类型分支语句Java安装环境变量 JAVA_HOME: Java的安装目录 Pah:%JAVA_HOME%\bin在CMD中测试 java -version javac -version基本类型//单行注释/*多行注释*//* *多行注释(要注意加上*, 规范) */ /** *文档注释, 可以使用原创 2016-08-05 14:41:49 · 1004 阅读 · 0 评论 -
Java中的循环 方法
Day02-AndroidDay02-Android循环whiledo whilefor循环案例方法组成传递递归循环while 初始化 while(循环条件){ 循环体 迭代 } 初始化 while(循环条件, 迭代){ 循环体 } public static void main(St原创 2016-08-05 14:42:47 · 3709 阅读 · 0 评论 -
IDEA使用 Java面向对象
Day03-AndroidDay03-AndroidIDEA使用快捷键的使用修改模板面向对象例 把大象放冰箱总共分几步基本知识断言包名定义重载和重写java中的引用finalize方法抽象方法和抽象类接口面向对象的三大特征 封装 继承 多态IDEA使用快捷键的使用psvm : main方法sout : System.out.println()fori : for循原创 2016-08-05 14:43:40 · 1956 阅读 · 0 评论 -
Java中数组 枚举 内部类
Day04-AndroidDay04-Android一 数组使用方式数组遍历案例二 枚举典型的例子单例设计模式三 内部类静态内部类构建者设计模式非静态内部类匿名内部类一, 数组 一系列相同类型的元素 有序的 连续的内存空间 初始化时固定大小使用方式//new int[10] : 申请10个int的内存空间, 并初始化所有的元素为0int[] a =原创 2016-08-05 14:45:23 · 2036 阅读 · 0 评论 -
补充-昨天使用二叉树存储数据的实现
package org.lulu.learn;/** * Project: Day06 * Created: Lulu * Date: 2016/8/3 * <p> * 如何用树形结构存储数据 */// 必须让类型自己可以比较, 泛型不可以用实现implements 关键字public class TreeNode<T extends Comp原创 2016-08-05 15:31:47 · 1833 阅读 · 0 评论 -
Java中的常用类 正则表达式
Day05Day05Java中的常用类ObjectStringStringBuilder正则表达式Java中的常用类Object 非常的特殊, 是所有类的父类toString()equals()hashCode() 注意: 如果hashCode返回值不同, 那么equa返回值肯定不同, hashCode返回值相同, 需要再次判断equals返回值判断 如果equals返回原创 2016-08-06 08:28:31 · 1939 阅读 · 0 评论 -
Java中的集合
Day06集合List 有序的 允许重复的ArrayList实现类:基于数组实现 remove语句,删除成功则返回true,不成功则返回false 注:不要在迭代时进行删除,否则会出错,可以使用迭代器自身的remove方法,如上。LinkList实现类:基于链表实现 与ArrayList区别:越靠近头部的添加删除,ArrayList越慢,越靠近尾部越快原创 2016-08-06 08:29:16 · 1041 阅读 · 0 评论 -
Java中的泛型 集合(Map) IO流
Day07泛型两个定义的时机 * 声明引用的时候 * 在继承泛型的时候 * 第二个<> 可以不写(自动补全jdk1.7之后使用)//让类型自己可以比较, 泛型不可以用实现implements 关键字<T extends Comparable<T>Map(接昨天的集合) key不能重复 value没有太多的限制 但是通常情况下, key为String遍历方式Set<S原创 2016-08-06 08:35:42 · 2023 阅读 · 0 评论 -
Java中的内存流 屏幕输入输出流
Day08内存流 从内存中读出写到内存类型转换屏幕的输入输出流原创 2016-08-06 08:54:28 · 2060 阅读 · 0 评论 -
Java中的线程
多线程进程 程序是指令和数据的有序集合, 其本身没有任何运行的含义, 是一个静态的概念. 而进程是程序在处理机上的一次执行的过程, 它是一个动态的概念. 进程是一个独立功能的程序, 一个实体, 每一个进程都有它自己的地址空间线程 是在进程基础之上的进一步划分, 一个进程启动之后, 里面的若干程序又可以划分成若干个线程. 定义: 是进程中的一个执行路径, 共享一个内存空间,原创 2016-08-07 16:11:36 · 839 阅读 · 0 评论 -
Java实现生产者与消费者模型
生产者package org.lulu.learn;import java.util.HashSet;import java.util.Queue;import java.util.Set;import java.util.concurrent.LinkedBlockingDeque;/** * Project: Day09 * Created: Lulu * Date: 2016/8/原创 2016-08-07 16:24:59 · 1330 阅读 · 0 评论 -
Java编程案例-将阿拉伯数字转换成中文数字
package org.lulu.learn.work;import java.io.*;/** * Project: Day07 * Created: Lulu * Date: 2016/8/5 */public class Work02 { public static void main(String[] args) {// int num = 0;//原创 2016-08-07 16:55:05 · 5095 阅读 · 0 评论 -
Java中JSON解析
JSON数据解析 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言原创 2016-08-09 08:47:05 · 6449 阅读 · 0 评论 -
Java中的XML解析
XML解析什么是XMl ? - XML 指可扩展标记语言(EXtensible Markup Language) - XML 是一种标记语言,很类似 HTML - XML 的设计宗旨是传输数据,而非显示数据 - XML 标签没有被预定义。您需要自行定义标签。 - XML 被设计为具有自我描述性。 - XML 是 W3C 的推荐标准XML的解析和生成 接下来总结xml解析(生成)的三原创 2016-08-09 20:07:33 · 1461 阅读 · 0 评论 -
Java中的反射机制
反射机制原创 2016-08-15 09:28:15 · 1186 阅读 · 0 评论 -
Java实现拔河问题
问题描述: n 个人参加拔河比赛,每个人有自己的重量,现在需要把他们分成两组进行比赛,每个人属于其中的一个组,两组的人员个数相差不能超过1。为使比赛公平,求使得两组重量差最小的分配。问题解决代码package org.lulu.learn;import java.io.FileInputStream;import java.io.FileNotFoundException;import原创 2016-08-15 21:09:23 · 2340 阅读 · 0 评论 -
Java中的动态接口实现
应用场景举例: 我们有这样的应用场景, 我们有个接口, 接口中有若干方法, 然而我们并不行让这若干方法在同一个线程中执行 , 或者说, 只有在我们具体去实现这个接口的时候才去判断我们具体的哪个方法在哪个线程中使用 (这个案例, 说得是判断我们的接口方法在哪个线程中使用, 当然我们不一定只能解决这一个问题, 这种类似的问题, 都可以使用动态接口来实现)简单分析 我们需要用到注原创 2016-08-16 19:56:36 · 9061 阅读 · 1 评论 -
Java文件与IO(三)之缓冲流
android培训——我的java笔记,期待与您交流!缓冲流首先要明确一个概念: 对文件或其它目标频繁的读写操作,效率低,性能差。 使用缓冲流的好处 能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。缓冲流的几个方法:BufferedInputStream: 为另一个输入流添加一些功能,在创建BufferedInputStream时原创 2016-05-15 23:07:08 · 1165 阅读 · 0 评论