Java学习笔记
DylanAndroid
未来已经来临,只是尚未流行
展开
-
6月17日线程
线程1, 进程:一个运行中的程序就是进程,是操作系统分配CPU资源与内存资源的最小单位;其内存独立。2, 线程:通过代码可以创建.销毁。进程内部可以拥有1个或多个线程,操作系统将资源分配给进程后,进程再将资源分配线程。是进程之上的多任务处理,可以认为进程是线程的容器。Java SE程序一旦执行,至少会有一个主线程(执行main函数的线程)。除主线程外,J原创 2013-06-21 00:16:30 · 959 阅读 · 0 评论 -
Java数组之获取最值
/** * 获取数组最值 */ private static int getMax(int arr[]) { int max = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] > max) { max = arr[i原创 2016-10-10 15:39:38 · 2710 阅读 · 0 评论 -
Java线程之线程的五种状态
线程的 5 中状态 1. New 新建状态 当程序使用 new 关键字创建了一个线程后,该线程就处于新建状态,此时线程还未启劢, 当线程对象调用 start()方法时,线程启劢,迚入 Runnable 状态 2. Runnable 可运行(就绪)状态 当线程处于 Runnable 状态时,表示线程准备就绪,等待获取 CPU 3. Running 运行(正在运行)状态原创 2016-10-11 14:17:48 · 4877 阅读 · 3 评论 -
Java泛型应用之打造Android中ListView和GridView万能适配器【CommonAdapter】--超简洁写法
在android中使用最多的就是ListView,GridView,用到这两个控件那么肯定要用到适配器,那就是定义一个类继承BaseAdapter,让后覆写它里面的getCount(),getView()等方法,下面来写一个demo。原创 2016-10-16 11:25:04 · 5493 阅读 · 2 评论 -
Java排序之插入排序
/**插入排序*/ public static void insertSort(int[] array) { if (array == null || array.length < 2) { return; } for (int i = 1; i < array.length;原创 2016-10-16 17:49:10 · 848 阅读 · 0 评论 -
Java多线程之并发安全经典案例-卖票
线程相关知识1.创建线程的两种方式继承Thread类。实现Runnable接口。(这种方式较为常用)2.实现Runnable接口的好处将线程的任务从线程的子类中分离出来,进行了单独的封装。按照面向对象的思想将任务的封装成对象。避免了java单继承的局限性。多线程并发安全之卖票代码/** * Created by yuandl on 2016-原创 2016-10-14 09:04:36 · 11597 阅读 · 7 评论 -
Java多线程之并发协作生产者消费者设计模式
两个线程一个生产者个一个消费者需求情景两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个 涉及问题同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加锁机制wait() / nofity() 方法是基类Object的两个方法,也就意味着所有Java类都会拥有这两个方法,这样,我们就可以为任何对象实现同步机制。wait()方法:当缓冲区已满/原创 2016-10-12 08:50:07 · 3649 阅读 · 4 评论 -
Java递归算法应用
递归: 就是函数自身调用自身。 什么时候用递归呢? 当一个功能被重复使用,而每一次使用该功能时的参数不确定,都由上次的功能元素结果来确定。 简单说: 功能内部又用到该功能,但是传递的参数值不确定。(每次功能参与运算的未知内容不确定)。 递归的注意事项: 1:一定要定义递归的条件。 2:递归的次数不要过多。容易出现 StackOverflowError 栈内存原创 2016-10-19 08:55:37 · 6078 阅读 · 4 评论 -
Java多线程之并发协作生产者消费者设计模式JDK1.5.0+升级优化版
上一篇[Java多线程之并发协作生产者消费者设计模式]已经讲述了在Java的多线程中,如何处理并发安全的生产者消费者设计模式,不了解的可以先看看上一篇的内容上一篇中的效率和优化问题在上一篇中生产者消费者设计模式中最后为了不产生类似于“死锁”,就是多线程全部wait()导致程序无法向下继续运行的情况,我们采用了notifyAll()这个方法,那么有什么问题呢?效率问题,notifyAll()方法原创 2016-10-13 09:06:49 · 1289 阅读 · 5 评论 -
JDBC批量插入数据优化,使用addBatch和executeBatch
JDBC批量插入数据优化,使用addBatch和executeBatch 在之前的玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入 中其实忽略了一点,那就是SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢?一.用 preparedStatement.addBatch()配合prepa原创 2016-12-22 09:25:28 · 26011 阅读 · 2 评论 -
玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入 在之前学习了MySQL和Oracle之后,那么,如和在Java种去连接这两种数据库。在这个轻量级的工具类当中,使用了数据库连接池 去提高数据库连接的高效性,并且使用了PreparedStatement来执行对SQL的预编译,能够有效防止SQL注入问题。一.准备在配置文件配置:原创 2016-12-20 00:03:15 · 12110 阅读 · 0 评论 -
Java排序之集合排序
集合排序要么让集合的对象具有比较性也就是让集合中的对象实现Comparable接口自定义比较器实现Comparator举例:按人的年龄排序代码如下 - UserBean对象/** * Created by yuandl on 2016-10-10. */public class UserBean implements Comparable<UserBean> { privat原创 2016-10-10 15:29:56 · 636 阅读 · 0 评论 -
Java排序之冒泡排序
冒泡排序原理:比较相邻的元素,将小的放到前面,大的放到后面。冒泡排序丼例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示:ary={8,2,3,7,1}ary={2,8,3,7,1}ary={2,3,8,7,1}ary={2,3,7,8,1}ary={2,3,7,1|8}ary={2,3,7,1|8}ary={2,3,7,1|8}ary={2,3,1|7,8}ary={2原创 2016-10-10 14:36:15 · 534 阅读 · 0 评论 -
6月18日IO流
I/O流1, File类 常用构造有:File("路径"),File(“前边路径”,“后边路径”)File(File,“路径”)常用方法:exists(),存在delete(),删除getName(),获取文件名getPath(),获取路径isDirectory(),是否是目录isFile(),是否文件length(),文件长度listFil原创 2013-06-21 00:17:30 · 955 阅读 · 0 评论 -
6月27日TCP与UDP
TCP与UDP一,TCP传输(Socket和ServerSocket):1在服务器端通过指定一个用来等待的连接的端口号创建一个ServerSocket实例.2在客户端通过规定一个主机和端口号创建一个socket实例,连到服务器上.3ServerSocket类的accept方法使服务器处于阻塞状态,等待用户请求4Socket类和ServerSocket是基于TCP协议原创 2013-07-04 22:36:48 · 952 阅读 · 0 评论 -
6月28日SQL基本语句
SQL基本语句/*SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)*/create database mydb1--创建一个数据库 drop database mydb原创 2013-07-04 22:37:53 · 1051 阅读 · 0 评论 -
JDBC连接数据库步骤和JDBC常用API
JDBC连接数据库步骤 第一步:加载驱动类:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 第二步:使用DriverManager的getConnection方法创建connection对象格式:"jdbc:sqlserver://localhost:1433;DatabaseName=要连接的数原创 2013-07-04 23:42:35 · 2315 阅读 · 0 评论 -
6月21日字符流
字符流1字符流:为了处理文字数据方便而出现的对象。其实这些对象的内部使用的还是字节流(因为文字最终也是字节数据)只不过,通过字节流读取了相对应的字节数,没有对这些字节直接操作。而是去查了指定的(本机默认的)编码表,获取到了对应的文字。简单说:字符流就是:字节流+编码表。 2,BufferReader字符读取流缓冲区:该缓冲区提供了一个一次读一行的方法readLine原创 2013-07-04 22:32:46 · 973 阅读 · 0 评论 -
6月24日集合框架
集合框架1, 集合框架:集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。2, 数组和集合类同是容器有何不同?数据虽然也可以存储对象,但是长度不可改变;集合是可改变的;另外数组能存基本数据类型,集合就不行。3, 集合类的特点集合只用于存储对象。长度可变。可以存储不同对象。集合框架4, Collec原创 2013-07-04 22:33:57 · 951 阅读 · 0 评论 -
6月26日网络编程
网络编程1、软件之间通信条件:a.找到对方IPb.数据要发送到对方指定的应用程序上,为了表示这些程序,所以给这些网络应用程序都用数字进行标示。 为了方便称呼这个数字,叫做端口,逻辑端口。c.定义通信规则。既成为协议,通用为TCP/IP2、IP地址:网络中设备的标识。3、本地回环地址:127.0.0.1(可以测试网卡用,ping) IPV6(包含数原创 2013-07-04 22:35:37 · 1052 阅读 · 0 评论 -
7月3日JDBC
JDBCJDBC(Java Data BaseConnectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。JDBC驱动分类原创 2013-07-04 22:39:34 · 1150 阅读 · 0 评论 -
6月19日装饰设计模式以及产品流
装饰设计模式以及产品流1,装饰设计模式当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。装饰类的特点:装饰类通常会通过构造方法接受被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。装饰和继承的区别:好处:装饰模式比继承要灵活,避免了继承体系的臃肿,而且降低了类与类之间的关系。装饰类因为是增强已有原创 2013-07-04 22:31:13 · 998 阅读 · 0 评论 -
7月02日SQL server条件以及高级查询
SQL server条件以及高级查询--条件 --where 请问if() --select,update,delete需要加条件 --true flase --关系运算符: && || ! --> = select *from studentselect *from studentwhere s原创 2013-07-04 22:39:00 · 1213 阅读 · 0 评论 -
JDBC如何有效防止SQL注入
JDBC批量插入数据优化,使用addBatch和executeBatch 在之前的玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入 中其实忽略了一点,那就是SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢?一.用 preparedStatement.addBatch()配合prepa原创 2016-12-21 07:53:14 · 9331 阅读 · 0 评论