Java实战
文章平均质量分 74
缘定三石
这个作者很懒,什么都没留下…
展开
-
Java篇----JDK开发环境搭建及环境变量配置
1、进入官网2.选择java SE3.选择JDK4.选择对应的平台5.安装完JDK后配置环境变量 安装过程中会出现两次安装提示。第一次是安装 jdk ,第二次是安装 jre 。jdk下自带jre,所以jre不用安装。 计算机→属性→高级系统设置→高级→环境变量。6.系统变量→新建 JAVA_H原创 2017-06-20 22:24:29 · 312 阅读 · 0 评论 -
文件压缩与解压
在最近的项目开发中,用到文件的压缩与解压,现总结如下:package java.zip;import org.junit.Test;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;impo原创 2017-07-31 22:47:18 · 305 阅读 · 0 评论 -
ArrayList和LinkedList增删数据对比
ArrayList: * 底层数据结构是数组,增删慢LinkedList: * 底层数据结构是链表,增删快 * 线程不安全,效率高package java.thread;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;/** */public clas原创 2017-07-28 00:15:43 · 493 阅读 · 0 评论 -
生产者和消费者
package java.thread;import java.util.LinkedList;import java.util.List;/** * Created by Administrator on 2017/7/27. */public class ProducerConsumerDemo { public static void main(String[] args)原创 2017-07-28 00:20:07 · 197 阅读 · 0 评论 -
设计模式---单例模式
GOF(gang of four,四人帮)问题常见,专家级的解决方案。23种设计模式。单例模式:singleton,某个类在运行期间有且只有一个对象。1.懒汉式//多线程访问存在实例化多个对象的风险.package java.thread;/** * 回收站 */public class GarbageBox { private static原创 2017-07-28 00:25:28 · 224 阅读 · 0 评论 -
多线程---yield
--多线程优先级public static void yield()yield()方法:暂停当前正在执行的线程对象,并执行其他线程setPriority(int newPriority):更改线程优先级int getPriority() 返回线程的优先级。String toString() 返回该线程的字符串表示形式,包括线程名称、优先级和线程组(1)MAX_PRIOR原创 2017-07-28 00:31:17 · 238 阅读 · 0 评论 -
多线程----sleep
package java.thread;/** * Created by Administrator on 2017/7/27. */public class ThreadDemo2 { public static void main(String[] args) throws InterruptedException { //庄家 Player p1 = new Player原创 2017-07-28 00:33:58 · 229 阅读 · 0 评论 -
字节数组与整数的相互转化
在工作的一些项目中,经常用到字节数组的整数的相互转化,现总结如下:package java.util;/** * 数据工具类 */public class DataUtil { /** * 将整数转换成字节数组 */ public static byte[] int2ByteArr(int i){ byte[] bytes = new byte[4] ; byt原创 2017-07-28 23:43:35 · 6013 阅读 · 0 评论 -
多线程安全问题----同步代码块
多线程安全问题1.1解决线程安全问题的基本思想(1)原因:当程序的多条语句在操作线程共享数据时(如买票例子中的票就是共享资源),由于线程的随机性导致,一个线程对多条语句,执行了一部分还没执行完,另一个线程抢夺到cpu 执行权参与进来执行,此时就导致共享数据发生错误。比如买票例子中打印重票和错票的情况。(2)解决方法:对多条操作共享数据的语句进行同步首先想为什么出现问题?原创 2017-07-29 00:02:42 · 459 阅读 · 0 评论 -
多线程安全问题----同步方法
解决线程安全问题实现2(2)同步方法同步方法是指进入该方法时需要获取this 对象的同步锁, 在方法上使用synchronized 关键字,使用this 对象作为锁,也就是使用了当前对象,因为锁住了方法,所以相对于代码块来说效率相对较低。注:静态同步方法的锁是该方法所在的类的字节码文件对象,即类名.class 文件格式:修饰词synchronized 返回值类型方法名(原创 2017-07-29 00:06:30 · 265 阅读 · 0 评论 -
文件归档与解档问题
1在大数据开发中,或这一些项目中,经常遇到很多小文件的处理,为了减小namenode内存的占用,提高效率,经常将小文件压缩并归档处理,而在流的读取与写的操作的时候,归档后还需要解档,下面写一个工具类,实现文件的归档与解档:package java.io;import java.util.DataUtil;import java.io.File;import java.io.FileI原创 2017-07-29 00:34:49 · 1228 阅读 · 0 评论 -
多线程案例----严格单例模式----和尚吃馒头问题
在项目中,经常用到一种设计模式----单例模式,下面举一个小案例,说明线程安全的单例模式在多线程中的应用,以供学习参考: 和尚吃馒头:100个馒头,30个和尚,每个和尚最少吃一个馒头,最多不超过4个馒头,保证上述条件的情况下,尽快将馒头吃了!要求是严格单例模式实现篮子类(存放馒头的容器)。package java.thread;/** * */public原创 2017-07-29 00:14:25 · 2576 阅读 · 0 评论 -
多线程---join---模拟打麻将
join //加入,让线程加入到当前线程.public final void join()多线程join 方法void join() 等待该线程终止。void join(long millis) 等待该线程终止的时间最长为millis 毫秒。特点:当A 线程走到B 线程的join 方法时,A 就会等待B 线程都执行完,A 才会执行作用: join 可以用来临时加入线程执原创 2017-07-29 11:07:57 · 423 阅读 · 0 评论 -
生产消费中的死锁问题
一个生产者,两个消费者,MAX=1,有一个时刻,所有的线程都进入等待队列。解决死锁问题,见以下代码:package java.thread;/** * 生产消费中的死锁问题 */public class ThreadDemo6 { public static void main(String[] args) { //使用java中集合类,List是列表。 Pool1原创 2017-07-29 16:44:52 · 1351 阅读 · 0 评论 -
JDBC--解决sql注入
sql注入由于没有对用户输入进行充分检查,而SQL又是拼接而成,在用户输入参数时,在参数中添加一些SQL关键字,达到改变SQL运行结果的目的,也可以完成恶意攻击。 示例:在输入用户名时 tom' or '1'='1这时就不会验证密码了。解决方案:PreparedStatement(重点)它是一个预处理的Statement,它是java.sql.Statem原创 2017-06-26 23:38:12 · 453 阅读 · 0 评论 -
Java篇--Java语言的基本语法1
关键字的定义和特点关键字的定义和特点定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写保留字Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标记符时要避免使用这些保留字 byValue、cast、future、generic、inner、operator、outer、原创 2017-06-20 23:23:14 · 435 阅读 · 0 评论 -
Java篇--Java语言的基本语法3
分支结构2:switch语句/*switch(变量){ case 1: case 值2: break case 值3: default: }1.根据变量的值,选择相应的case去判断,一旦满足case条件,就执行case的相应语句。如果没有break或者已经到结尾的话,会继续执行其下的case语句。2.de原创 2017-06-21 08:44:34 · 534 阅读 · 0 评论 -
Java篇--Java语言的基本语法4
数组概念数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。 数组既可以存储基本数据类型,也可以存储引用数据类型数组的定义格式格式1:数据类型[]数组名;A:int[] a; 定义一个int类型的数组a变量 格式2:数据类型 数组名[];B:int a[];定义一个int类型的a数组变量注意:这两种定义做完了,数组中是没有元素值的。原创 2017-06-21 09:21:50 · 367 阅读 · 0 评论 -
Java篇--Java语言的基本语法5
方法定义及格式简单的说:方法就是完成特定功能的代码块 在很多语言里面都有函数的定义函数在Java中被称为方法格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {函数体;return 返回值;}方法格式的解释说明 修饰符 比较多,后面会详细介绍。目前public static 返回值类型 用于限定返回值的数原创 2017-06-21 10:14:33 · 349 阅读 · 0 评论 -
Java篇--面向对象基础1
面向对象是相对于面向过程而言的,过程其实就是函数,对象是将函数和属性进行了封装。 (1)将复杂的事情简单化。 (2)面向对象将以前的过程中的执行者,变成了指挥者。 (3)面向对象思想是符合人们思考习惯的一种思想。面向对象和面向过程的区别面向过程:事物比较简单,可以用线性的思维去解决。面向对象:事物比较复杂,使用简单的线性思维无法原创 2017-06-21 10:48:27 · 377 阅读 · 0 评论 -
Java篇--继承与多态
继承与多态 继承与多态 继承 继承的好处继承概述:把多个类中相同的内容给提取出来定义到一个类中。如何实现继承呢?Java提供了关键字:extends格式:class 子类名 extends 父类名 {}好处:A:提高了代码的复用性B:提高了代码的维护性C:让类与类之间产生了关系,是多态的前提 Java中继承的特点A原创 2017-06-21 20:27:52 · 315 阅读 · 0 评论 -
Java篇--抽象类和接口
抽象类与接口 抽象类 抽象类特点抽象类的概述:动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的。我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类。抽象类的特点:A:抽象类和抽象方法必须用abstract关键字修饰B:抽象类中不一定有抽象方法,但是有抽原创 2017-06-21 20:58:47 · 337 阅读 · 0 评论 -
Java篇--模拟qq斗地主发牌
import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.TreeMap;import java.util.TreeSet;/** * 模拟QQ斗地主发牌 54张 * @author lenovo * 分析:1、创建一个HashMap集合原创 2017-06-22 23:52:52 · 437 阅读 · 0 评论 -
Java篇--集合
CollectionCollection函数库是在java.util包下的一些接口和类,类是用来产生对象存放数据用的,而接口是访问数据的方式。 与数组的区别: (1)数组的容量是有限制的,而Collection库没有限制,它的容量可以自动调节。 (2)Collection函数库只能用来存放对象,而数组没有这样的限制。原创 2017-06-23 22:23:29 · 249 阅读 · 0 评论 -
JDBC 封装工具类
1.配置文件 jdbc.propertiesdriverClass=com.mysql.jdbc.Driverurl=jdbc:mysql:///mydb?useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=trueusername=rootpassword=root2.封装工具类 jdbcUtil原创 2017-06-26 22:56:55 · 421 阅读 · 0 评论 -
JDBC处理大数据案例--处理文本
处理文本存储大文本create table mytext(id int primary key auto_increment,content longtext)存储File file = new File("JdbcUtils1.java");FileReader fr = new FileReader(file);pst.setCharacterStream(原创 2017-06-26 23:12:27 · 341 阅读 · 0 评论 -
JDBC批量操作
批量操作一次可以执行多条sql语句.在jdbc中可以执行sql语句的对象有Statement,PreparedStatement,它们都提供批处理.1.Statement执行批处理addBatch(String sql); 将sql语句添加到批处理executeBatch(); 执行批处理clearBatch();2.PreparedStatement执行原创 2017-06-26 23:18:26 · 357 阅读 · 0 评论 -
多线程----守护线程---Deamon
public final void setDaemon(boolean on)守护线程(后台线程)setDaemon(boolean on):将该线程标记为守护线程或者用户线程。当主线程结束,守护线程自动结束, 当正在运行的线程都是守护线程时,java 虚拟机jvm 退出, 该方法必须在启动线程前调用;守护线程的特点:守护线程开启后和前台线程共同抢夺cpu 的执行权,开启、原创 2017-07-28 23:50:30 · 382 阅读 · 0 评论