
JavaSE
java特性,常用API
㈤㈥㈦
这个作者很懒,什么都没留下…
展开
-
数据库连接池:C3P0、Druid、Spring JDBC ----JDBC Template
数据库连接池1. 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2. 好处: 1. 节约资源。 2. 用户访问高效。3. 实现: 1. 标准接口:DateSource javax.sql包下的 1. 方法: * 获取连接:g...原创 2020-05-02 08:54:59 · 141 阅读 · 0 评论 -
Stream流及常用方法、方法引用
使用传统方式,对集合中数据进行过滤package com.itheima.demo01.Stream;import java.util.ArrayList;import java.util.List;/* 使用传统的方式,遍历集合,对集合中的数据进行过滤 */public class Demo01List { public static void main(Stri...原创 2020-04-30 18:01:34 · 1823 阅读 · 0 评论 -
网络编程-TCP
软件结构C/S结构:全称Client/Server结构,是指客户端和服务器结构,常见程序有QQ、迅雷、百度网盘等。B/S结构:全称Browser/Server结构,是指浏览器和服务器结构,常见浏览器有谷歌、火狐等。协议分类UDP:用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说...原创 2020-04-30 10:40:14 · 291 阅读 · 0 评论 -
函数式接口 与 Lambda表达式
函数式接口的定义:在接口中仅定义一个抽象方法@FunctionalInterface注解:检测接口是否是一个函数式接口package com.itheima.demo01.FunctionalInterface;/* 函数式接口:有且只有一个抽象方法的接口,称之为函数式接口 当然接口中可以包含其他的方法(默认方法、静态方法、私有方法) @FunctionalInt...原创 2020-04-30 10:39:36 · 816 阅读 · 0 评论 -
缓冲流、转换流、序列化流、打印流
字节缓冲输出流package com.itheima.demo01.BufferedStream;import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;import java.io.*;/* java.io.BufferedOutputStream extends OutputStream Buf...原创 2020-04-28 17:26:17 · 203 阅读 · 0 评论 -
字节流、字符流、Properties集合
一切皆为字节原创 2020-04-28 11:34:53 · 195 阅读 · 0 评论 -
File类、递归
package com.itheima.demo01.File;import java.io.File;/* 路径: 绝对路径:是一个完整的路径 以盘符(c:,D:)开始的路径 c:\\a.txt c:\\Users\itcast\\IdeaProjects\\shunyuan\...转载 2020-04-27 14:29:26 · 185 阅读 · 0 评论 -
等待与唤醒案例、线程池、Lambda表达式(重要)
package com.itheima.demo01.WaitAndNotify;/* 生产者(包子铺)类:是一个线程类,可以继承Thread 设置线程任务(run):生产包子 对包子的状态进行判断 true:有包子 包子铺调用wait方法进入等待状态 false:没有包子 包子铺生产包子 增加一些趣味性...转载 2020-04-26 10:00:04 · 177 阅读 · 0 评论 -
并发与并行、进程与线程、同步
package com.itheima.demo06.Thread;/* 创建多线程程序的第一种方式:创建Thread类的子类 java.lang.Thread类:是表述线程的类,我们想要实现多线程,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置...原创 2020-04-24 11:04:03 · 260 阅读 · 0 评论 -
Map-基本方法:(containKey()、get()、remove()、put() 方法)、获取Map中元素的方法:(keySet()、entrySet()方法)
Map集合与Collection集合不同,Map集合是一个是一个双列集合package com.itheima.demo01.Map;/* java.util.Map<k,v>集合 Map集合的特点: 1. Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) 2. Map集合中的元素,key和value的数...原创 2020-04-23 14:49:35 · 2439 阅读 · 0 评论 -
hash()方法
HashMap中hash方法的具体实现?HashTable、ConcurrentHashMap中hash方法的实现以及原因?为什么要这么实现?为什么JDK 7和JDK 8中hash方法实现的不同以及区别?哈希-详解...转载 2020-04-23 13:52:02 · 1718 阅读 · 2 评论 -
List、Set【hash】及其数据结构、Collections(addAll()方法;shuffle()方法;sort()方法)
数组红黑树List集合package com.itheima.demo09;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/* java.util.List 接口 extends Collection接口 List接口特点: 1.有序的集合,...原创 2020-04-21 11:18:19 · 501 阅读 · 0 评论 -
集合、迭代器、for-each、泛型
学习集合的目标1. 会使用集合存储数据2. 会遍历集合,把数据取出来3.掌握每种集合的特性package com.itheima.demo06;import java.util.ArrayList;import java.util.Collection;import java.util.Objects;/*boolean add(E e); ...转载 2020-04-21 09:05:52 · 102 阅读 · 0 评论 -
Object类(toString()方法、equals()方法)、date(getTime()方法)、SimpleDateFormat类(farmat()方法)、Calendar类、System类
toString 方法package com.itheima.demo01;public class Person {//定义一个标准的类 private String name; private int age; public Person() { } public Person(String name, int age) { ...原创 2020-04-20 11:25:38 · 419 阅读 · 0 评论 -
内部类(重要)
final关键字用来修饰一个类package cn.itcast.day11.demo01;/*当final关键字用来修饰一个类的时候,格式:public final class 类名称{ //...}含义:当前这个类有父类,【但不能有任何的子类】。(太监类)注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没儿子) */public fi...原创 2020-04-19 18:21:11 · 154 阅读 · 0 评论 -
接口
接口:在Java 9+版本中,接口的内容可以有:成员变量其实是常量,格式:public static final 数据类型 常量名称 = 数据值;【三个关键字都可以省略】注意:常量必须进行赋值,而且一旦赋值不能改变。常量名称必须完全大写,用下划线进行分割。接口中最重要的就是抽象方法,格式:public abstract 返回值类型 方法名称(参数列表);【两个关键字都可以省...原创 2020-04-19 12:30:48 · 152 阅读 · 0 评论 -
对象数组、ArrayList集合及其基本操作、泛型、基本类型的包装类
package cn.itcast.cn.itcast.day07.demo03.Demo04;/*全参构造方法、各个变量的 getter、setter 方法 */public class Person { private String name; private int age; public Person(String name, int age) { ...原创 2020-04-18 15:43:03 · 830 阅读 · 0 评论 -
java.util.Arrays 以及 java.util.Math
package cn.itcast.day08.demo04;import java.util.Arrays;import java.util.SplittableRandom;/*java.util.Array是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作public static String toString(数组):将参数数组变成字符串(按照默认...原创 2020-04-19 09:24:14 · 242 阅读 · 0 评论 -
引用类型-String类 及其 基本操作
package cn.itcast.day08.demo01;/*java.long.String类代表字符串。API当中说:Java程序中的所有字符串字面值(如:“abc”)都作为此类的实例实现。其实就是说:程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也照样是。)字符串的特点:1. 字符串的内容永不可变。【重点】2.正式因为字符串的不可改变,所以字符...原创 2020-04-18 15:42:38 · 297 阅读 · 0 评论 -
Scanner:获取键盘输入
package demo07;import java.util.Scanner;//1. 导包/*Scanner类的功能:可以实现键盘输入数据,到程序当中引用类型的一般使用步骤:(除了基本数据类型,就是引用数据类型)1. 导包import 包路径.类名称;如果需要使用的目标类,和当前类位于统一包下,则可以省略导包语句不写。只有Java.lang包下的内容不需要导包,其他的包...原创 2020-04-18 14:16:00 · 318 阅读 · 0 评论 -
Random类:用来产生随机数字
package cn.itcast.cn.itcast.day07.demo03;import java.util.Random;/*Random类用来生成随机数字,使用起来业是三个步骤:1. 导包import java.util.Random2. 创建Random r = new Random(); //小括号中留空即可3. 使用 3.1 获取一个随机的int...原创 2020-04-18 12:04:04 · 1812 阅读 · 0 评论 -
匿名对象
package Demo02;public class Person { String name; public void showName(){ System.out.println("我叫:" + name); }}package Demo02;/*创建对象的标准格式:类名称 对象 = new 类名称();匿名...原创 2020-04-18 11:50:38 · 136 阅读 · 0 评论 -
static关键字、final关键字
package cn.itcast.day08.demo03;/*如果一个成员变量使用了static关键字,name这个对象不再属于对象自己,而是属于所在的类,多个对象共享一份数据 */public class Demo01StaticField { public static void main(String[] args) { Student two = n...原创 2020-04-18 11:46:24 · 171 阅读 · 0 评论 -
方法的重载、形参与实参、成员变量的封装、类的继承extends、方法的重写(override)、类对象的实例化过程、多态
一、方法的重载* 重载的概念: 在同一个类中,允许存在一个以上的同名方法,只要他们的**参数个数**或者**参数类型**不同即可。* 重载的特点: 与返回值无关,只看参数列表,且参数列表必须不同。(**参数个数或参数类型**)。调用时,根据方法参数列表的不同来区别重载实例://返回两个整数的和int add(int x, int y){return x + y;}//返回三个整数...原创 2020-04-18 11:12:28 · 565 阅读 · 0 评论 -
类、对象、方法、包、构造器、this、super、JavaBean
类的语法格式修饰符 class 类名{属性声明;方法声明;}说明:修饰符public: 类可以被任意访问类的正文要用{ } 括起来举例:public class Person{public int age; //声明公有变量public void showAge(){ //声明方法showAge( )System.out.println(age);}}publ...原创 2020-04-17 19:51:15 · 667 阅读 · 0 评论 -
Java数组 and 常用算法
int[] aa; //声明一个int类型的,数组名为aa的数组(格式1)int aaa []; //声明一个int类型的,数组名为aaa的数组 (格式2)int[] aa = new int[4]; //声明一个能存放4个int类型数据的数组名为aa的数组。int[] aaa = new int[]{1,2,3,4}; //声明了一个存放了1、2、3、4这4个数的数组Stri...原创 2020-04-17 15:42:44 · 261 阅读 · 0 评论 -
Java循环、特殊流程控制
for循环1、错误思路如下: for(int i = 1; i <= 150; i++){ if( i % 3 == 0 && 1 % 5 != 0){ System.out.println("foo"); }else if( i % 5 == 0 && i % 3 != 0){ System.out.println...原创 2020-04-17 14:44:41 · 204 阅读 · 0 评论 -
关键字、变量、运算符
2.1 关键字关键字的定义和特点定义:被Java语言赋予了特殊的含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写1、用于定义数据类型的关键字class、interface、enum、byte、short、int、long、float、double、char、boolean、void2、用于定义数据类型值的关键字true、false、null、3、用于定义流程控...原创 2020-04-18 09:40:56 · 202 阅读 · 0 评论 -
java语言的环境搭建
建议1、锻炼“双核”处理,边听边思考,边做“笔记”。2、不要依赖书和视频,多做项目。3、多练,写代码,敲、狂敲。4、学习编程的规范–加注释。1.1 基础知识软件开发软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。人机交互方式1、图形化界面2、命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记住一些命令。...原创 2020-04-17 10:32:12 · 186 阅读 · 0 评论 -
Java并发协作控制
线程协作Thread/Executor/Fork-Join???? 线程启动,运行,结束???? 线程之间缺少写作synchronized同步???? 限定只有一个线程才能进入关键区???? 简单粗暴,性能损失有点大LockLock也可以实现同步的效果???? 实现更复杂的临界区结构???? tryLock方法可以预测锁是否空闲???? 允许分离读写的操作,多个读,一个写???? 性能更好ReentrantLock类...原创 2020-04-09 22:29:04 · 214 阅读 · 0 评论 -
Java并发的数据结构
一、并发数据结构简述常用的数据结构是线程不安全的①ArrayList,HashMap,HashSet是非同步的②多个线程同时读写,可能会抛出异常或数据错误传统Vector,Hashtable等同步集合性能过差这两种集合是同步的,但是性能很差两种并发数据结构:数据添加和删除,用于代替以前的集合※ 阻塞式集合:当集合为空或者满时,等待※ 非阻塞式集合:当集合为空或者满时,不等待,返回...原创 2020-04-08 14:43:02 · 281 阅读 · 0 评论 -
Java并发框架-Fork-Join框架
三种并发概念的提出时间:Java2—多线程Java5—Executor框架Java7—Fork-Join框架Fork-JoinJava7提供的一种并行框架:分解、治理、合并(分治编程)适合用于整体任务量不好确定的场合(最小任务可确定)...原创 2020-04-08 13:27:55 · 188 阅读 · 0 评论 -
Java并发框架-Executor
引论现代业务:任务多,数据量大串行vs并行串行结构:顺序结构、选择结构、循环结构等并行编程:多线程难易程度:串行编程简单,并行编程困难CPU变化:单个计算核频率下降,计算核数增多,整体性能变高并行编程困难主要困难:任务分配和执行过程高度耦合如何控制粒度,切割任务如何分配给线程,监督线程执行过程(线程状态)并行模式:主从模式(Master-Slave):有一个...原创 2020-04-07 18:34:37 · 170 阅读 · 0 评论 -
多线程管理-以生产者消费者模型为例
线程管理APIThread的部分已经废弃的API暂停和恢复 supend/resume消亡stop/destory线程阻塞和唤醒sleep,时间一到,自己会醒来wait/notify/motifyAll,等待,需要别人来唤醒join,等待另外一个线程技术interrupt,等待另外一个线程发sing中断信号,该线程收到信号,会触发InterruptedException(...原创 2020-04-05 16:36:11 · 305 阅读 · 0 评论