java 笔记
一李
这个作者很懒,什么都没留下…
展开
-
pakcage包
软件包机制1.为了解决类的命名冲突问题,在类名前加命名空间(包机制)2.在java中使用package语句定义包(单包,副包)3.package语句只能出现在.java源文件的第一行4.pcakage定义的格式:通常采用公司域名倒叙方式com.sxnydx.AAA.system以上包含义:scnydx公司开发的AAA项目,system是其中的一个模块公司域名倒叙....原创 2019-05-22 18:30:56 · 269 阅读 · 0 评论 -
DateOutputStream and DateInputStream
适合储存带有数据类型的数据数据字节输出流可以将内存中的 int i = 10;写入硬盘文件中,写入的是二进制字符数据带类型public static void main(String[] args) throws IOException { DataOutputStream d = new DataOutputStream(new FileOutputStream("D:\\pp...原创 2019-06-07 17:36:49 · 311 阅读 · 0 评论 -
PrintStream PrintWinter 标准的输出流
PrintStream 标准的输出流,默认打印到控制台,以字节的方式PrintWriter 以字符的方式private static java.util.Date nowtime; public static void main(String[] args) throws FileNotFoundException { //默认输出到控制台 System.out.println...原创 2019-06-07 19:55:58 · 214 阅读 · 0 评论 -
线程的同步——锁机制 synchronized
异步编程模型:两个线程之间谁也不等谁同步编程模型:当一个线程必须等另外一个线程执行结束之后,线程才能执行为什么引入线程同步?为了数据的安全(暂时不考虑效率),线程同步使程序变了单线程。什么情况下引入线程的同步?1.多线程环境2.多线程环境共享同一个数据3.共享的数据涉及到修改操作模拟银行的存款业务,引入线程的同步对象过来找synchronized关键...原创 2019-06-14 00:17:01 · 386 阅读 · 0 评论 -
反射机制 Class 获取Class类型的对象
反射机制的优缺点优:强大的工具缺:打破了封装性,性能问题:效率低一些不是直接执行代码,而是解释执行,告诉JVM我们希望做什么并且它满足我们的要求。2.反射会模糊程序内部实际要发生的事情。反射的代码比相应的代码等价的复杂。(仅在他可以真正的增加灵活性的地方使用)反射机制中主要掌握的类型反射机制中的类java.lang.Class; Class c = _...原创 2019-06-20 17:38:14 · 370 阅读 · 0 评论 -
获取某个特定的方法,通过反射机制执行 反编译某个类的所有的构造方法
public class reflect08 { public static void main(String[] args) throws Exception { //以前 //CustomerService cs = new CustomerService(); //cs.logout(); //通过反射机制 Class c = Class.forName(...原创 2019-06-20 17:39:39 · 819 阅读 · 0 评论 -
反编译某类的具体的某个属性
通过反编译来访问具体类中的某一个具体的属性, //获取name属行 Field agef = c.getDeclaredField("age"); 创建对象以后可以打破原来的封装(会导致数据不安全) //创建完对象不能访问怎么办, //打破封装 agef.setAccessible(true);//使用发射机制可以打破封装,导致java数据不安全pu...原创 2019-06-20 17:40:11 · 179 阅读 · 0 评论 -
反射某个类的所有的方法
Method []ms = c.getDeclaredMethods(); ----获取本类中的所有的方法Method []ms = c.getMethods();--------获取本类以及父类接口中所有公共的方法(public)getModifiers()---------返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的返回值,代表类、成员变量、方法的修饰符。...原创 2019-06-20 17:40:55 · 1338 阅读 · 0 评论 -
IO+Properties 联合应用
配置文件的作用是:使程序更加灵活注意:一般在程序中可变的东西不要写死,推荐到配置文件中,运行同样的程序得到不同的结果。像是dbinfo这样具有特殊内容的配置文件,叫做属性文件属性文件以:.properties 结束属性文件中的数据要求,key和value中可以使用 空格 冒号 等号,如果都有,按照最前的当做分隔符 //运行相同的程序得到的结果不一样,ke...原创 2019-06-20 17:44:39 · 218 阅读 · 0 评论 -
获取类中的属性 java.lang.reflect.Field
反编译获取类中的属性public static void main(String[] args) throws Exception { //Class c = Class.forName("A.Teacher"); Class c = Teacher.class; //Field[] fs = c.getFields(); //System.out.pri...原创 2019-06-20 17:45:56 · 488 阅读 · 0 评论 -
带有缓冲区的流 Buffer
根据流出现的位置,分为包装流,处理流,节点流BufferedInputStreamBufferedOutputStreamBufferedReader 缓冲区的字符输入流readerLine()方法public static void main(String[] args) throws IOException { //FileReader f =...原创 2019-06-07 17:35:47 · 804 阅读 · 0 评论 -
Collection中常用的方法 Iterator (迭代器) contains remove
public static void main(String[] args) { //创建集合 Collection c = new ArrayList();//多态 c.add(1);//自动装箱 c.add(new Integer(100)); Object o = new Object(); c.add(o);//集合只能单个存储元素,只能存储引用类型...原创 2019-05-27 16:31:42 · 314 阅读 · 0 评论 -
List集合
1.有序 (有下标,顺序不可改变)2.可重复 List a = new ArrayList();//多态 a.add(1); a.add(2); a.add(3); Iterator it = a.iterator(); while (it.hasNext()) { System.out.println(it.next()); }深入publi...原创 2019-05-27 17:09:57 · 3162 阅读 · 0 评论 -
Map HashMap Hashtable
Map中常用的方法(存储在HashMap中的元素需要重写HashCode 和 equals方法)Map中key重复了以后Value会覆盖上面的HashMappublic static void main(String[] args) { /*关于Map集合中常用的方法*/ Map person = new HashMap();//HashMap默认初始化容量是1...转载 2019-05-30 21:36:13 · 171 阅读 · 0 评论 -
Collections工具类--常用的方法
Collections工具类可以对List集合中的元素排序,但是集合元素必须是可以比较的public static void main(String[] args) { //排序 List l = new ArrayList(); l.add(10); l.add(9); l.add(30); /* for(int i = 0 ;i<l.size();i++ ) {...原创 2019-05-31 16:56:46 · 687 阅读 · 0 评论 -
泛型(编译阶段)
为什么引入泛型如果不适用泛型,则集合中的元素不统一,在遍历集合的时候只能拿出来Object类型,需要做大量的强制类型转换(优点,集合中的类型不统一)可以统一结合中的数据类型,可以减少强制类型转换如何实现public static void main(String[] args) { //是一个编译阶段的语法 List<String> str = ne...原创 2019-05-31 17:37:06 · 877 阅读 · 0 评论 -
Set集合 哈希表 Hash表 SortedSet Comparator 单独编写一个比较器
无序,不可重复哈希表(数组和单向链表的结合,本质是一个数组,只不过这个数组中每一个元素又是单向链表),散列表的数据结构HashMap中有一个方法,Object get(Object key)Hashset底层实际上是一个HashMap,HashMap底层采用了哈希表数据结构哈希表是一个数组,这个数组中每一个元素是一个单向链表,每个单向链表都有独一无二的hash值,代表数组...原创 2019-05-28 21:08:59 · 219 阅读 · 0 评论 -
增强for循环
集合要想使用增强for循环需要使用泛型如果集合不使用泛型,该集合在增强for循环的时候应该使用Object类型定义for(变量名:集合){}int []a = {1,23,4,50}; for(int wed:a) { System.out.println(wed);SetSet<String> as = new HashSet<String&g...原创 2019-05-31 18:32:12 · 6024 阅读 · 0 评论 -
FileInputStream 文件字节输入流 FileOutputStream 文件字节输出流
FileInputStream(文件字节输入流)按照字节方式读取文件public static void main(String[] args) { //文件路径 //String s = "abc";//相对路径,相对当前而言,在当前路径下载 FileInputStream fis = null; try { String s = "E:\\LED\\qwe...原创 2019-06-04 19:30:57 · 738 阅读 · 0 评论 -
FileReader(文件字符输入流)
读取的时候根据读取什么内容选取合适的流,FileReaderpublic static void main(String[] args){ FileReader f = null; try { f = new FileReader("D:\\ppp\\p.txt"); char []c = new char[512]; int temp = 0;...原创 2019-06-04 21:42:31 · 1709 阅读 · 0 评论 -
关于文件的复制粘贴
01 FileInputStream and FileOutputStreampublic static void main(String[] args) throws IOException { //输入流 FileInputStream f = new FileInputStream("D:\\Fiel\\p.txt"); //输出流 FileOutputStream f...原创 2019-06-04 21:42:59 · 344 阅读 · 0 评论 -
线程的调度与控制 优先级 获取当前的线程名
分时调度抢占时调度(java),优先级高的线程使用CPU,如果线程优先级相同,那么会随机使用一个,优先级高的线程获取的CPU时间片会多一点线程的优先级主要分为三种:MAX_PRIORITY(最高级):10MIN_PRIORITY(最低级):1NORM_PRIORITY(中间级)(默认):5public static void main(String[] args) { ...原创 2019-07-10 16:15:38 · 235 阅读 · 0 评论 -
线程的生命周期
新建:start就绪:表示有权利去获取CPU时间片(执行权),线程拿到Cpu时间片后就执行run方法。运行状态运行:run执行,CPU时间片用完,继续进入就绪状态阻塞:消亡:run结束...原创 2019-07-10 16:16:24 · 124 阅读 · 0 评论 -
线程的创建和启动 Thread Runable
1.在java中继承Thread 重写Run方法定义创建启动线程 public static void main(String[] args) { //创建启动线程 Thread t = new Processor(); //t.run();这是普通方法调用,只有一个线程,run方法结束后,才运行main t.start();//执行瞬间结束。告诉JV...原创 2019-07-10 16:18:06 · 304 阅读 · 0 评论 -
多线程 java程序的运行原理
计算机的处理速度高进程:一个进程对应一个应用程序,例如在、Windows操作系统中启动word,就是启动了一个进程(现代计算机都是支持多进程的,在同一个操作系统中可以同时执行多个进程)2.多进程作用:?单进程计算机只能同时做一件事情,对于单核计算机来讲,在同一时间,游戏进程和音乐进程是同时进行么?不是因为计算机的CPU只能在某个时间点上做一件事,计算机在游戏进程和音乐进程...原创 2019-07-10 16:18:56 · 186 阅读 · 0 评论 -
表 mysql常用数据库类型
定义:数据库最基本的组成单元,数据库是用来储存数据的,数据库中有很多的表,每一个表都是一个独立的单元,表也是一个结构化的文件,由行和列组成,行称为数据或记录,列称为字段,字段又包含(字段名称,字段类型,长度约束)创建表(语法)DDL---->数据库定义语言create table t_表名/tbl_表名 ( 字段名称 字段类型 字段长度 字段约束,...原创 2019-08-09 19:41:26 · 284 阅读 · 0 评论 -
union合并相加集合
查询出工作岗位为manager和salesman的员工select ename,job from emp where job = 'manager' or job = 'salesman';select ename,job from where job in('manafer' or 'salesman');使用union合并相加结果集select ename,job f...原创 2019-08-06 10:47:00 · 1443 阅读 · 0 评论 -
Android实现跨平台 Android编译的问题
Android其实基于Java语言的,所以同理,想要运行一段Android代码,也要经过多个步骤,将Android源代码转换成机器可以执行的机器代码。但是这个转换过程在Android的不同版本中实现不尽相同:Android 1.0(2008 年):采用一个名为 Dalvik 的虚拟机,并且集成了一个解释器。当 App 运行时,就会调用这个解释器,对代码进行逐句解释,速度很慢。Andro...原创 2019-08-18 16:57:00 · 453 阅读 · 0 评论 -
Java实现跨平台
Java对于跨平台的支持,就像对安全性和网络移动性的支持一样,是分布在整个Java体系结构中的。其中扮演者重要的角色的有Java语言规范、Class文件、Java虚拟机(JVM)等。首先,在Java语言规范中,规定了Java语言中基本数据类型的取值范围和行为。其次,所有Java文件要编译成统一的Class文件。最后,通过Java虚拟机将Class文件转成对应平台的二进制文件。Jav...原创 2019-08-18 15:38:22 · 577 阅读 · 0 评论 -
mysql 约束基本概念 主键约束 外键约束
constraint 约束数据(对表中数据的限制条件)四种条件约束:非空 唯一性 主键约束 外键约束非空约束(not null)约束的字段不能为空值,必须赋具体的数据 CREATE TABLE t_user ( id INT (4), NAME VARCHAR(32) NOT NULL, class BIGINT(1000));这里的ID不可以...原创 2019-09-02 08:10:56 · 1478 阅读 · 0 评论 -
join方法 关于线程合并
两个栈空间变为一个栈空间t.join出现在哪个线程中就会和那个线程合并ublic static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Processor09()); t.setName("t"); t.start(); //合并线程 t.join()...原创 2019-07-10 16:14:17 · 416 阅读 · 0 评论 -
线程的调度与控制 Sleep方法 yield(让位)方法
Thread.sleep(毫秒)静态方法 类名.调用该方法的作用是阻塞当前的线程,腾出CPU让给其他的线程public class Thread_Sleep { public static void main(String[] args) throws InterruptedException { Thread t1 = new Processor12(); t1....原创 2019-07-10 16:13:32 · 374 阅读 · 0 评论 -
java语言中的流 流之间的关系图解
流分为四大家族(InputStream (字节输入流),OutputStream(字节输出流) , Writer , Reader)InputStream (字节输入流),OutputStream(字节输出流)Writer , Reader(字节输入,输出流)...原创 2019-06-04 21:43:26 · 967 阅读 · 0 评论 -
Comparator
单独编写一个比较器(耦合度较强)public static void main(String[] args) { //创建TreeSet集合的时候提供一个比较器 SortedSet ps = new TreeSet(new ProductComparator()); Product p1 = new Product(1.0); Product p2 = new Produ...原创 2019-06-04 21:46:31 · 131 阅读 · 0 评论 -
ObjectOutputStream and ObjectInputStream 序列化 transient
对象 内存------>硬盘文件中(序列化) ObjectOutputStream 序列化java对象 Serial硬盘文件----->内存(反序列化)将硬盘中的数据"反序列化 "到内存地址 DeSerialCompile 编译(java------>class) DeCo...原创 2019-06-11 19:14:55 · 253 阅读 · 0 评论 -
File类常用的方法以及
File类和流无关,不能完成文件的读取File是文件和目录路径名的抽象表示形式——代表的是硬盘上的Directory(目录)和file(文件)public static void main(String[] args) throws IOException { File f1 = new File("temp01");//相对路劲 File f2 = new File("D:...原创 2019-06-11 20:43:53 · 599 阅读 · 0 评论 -
反射机制+IO+Properties联合应用
反射是一种灵活的工具,这些Demo可以在运行时装配(动态装配),无需在组件之间进行源码的连接。(代码的耦合度降低)扩展性问题public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException { ...原创 2019-07-10 16:10:22 · 174 阅读 · 0 评论 -
关于java语言中的可变长参数
public static void m1(int...a) {//m1方法在调用的时候,传递的实参应该是0-n个 System.out.println("Test"); } public static void m1(int i ) {//如果有可以精确匹配的方法,则去调用该方法,不会再去执行可变长的参数的方法 System.out.println(i); } pu...原创 2019-07-10 16:11:16 · 150 阅读 · 0 评论 -
定时器的应用 Timer
每隔一段固定的时间执行一段代码Timerpublic class Timer01 {//定时器 public static void main(String[] args) throws ParseException { Timer t = new Timer(); //指定时间 t.schedule(new Blog(), new SimpleDateFormat("y...原创 2019-07-10 16:11:47 · 391 阅读 · 0 评论 -
java语言的特性
简单性 面向对象 可移植性---一次编译,到处运行 健壮性(自动回收机制,GC) 多线程原创 2019-04-10 17:49:46 · 871 阅读 · 0 评论