- 博客(172)
- 收藏
- 关注
原创 MySQL_SELECT语句
1.ORDER BY指定排序的列,排序的列既可以是表中的列名,也可以是SELECT语句后指定的列名。5.DISTINCT可选,指显示结果时,是否去掉重复数据。3.ORDER BY子句应位于SELECT语句的结尾。2.ASC 升序(默认) DESC 降序。1.SELECT指定查询哪些列的数据。3. * 号代表查询所有列。4.FROM指定查询哪张表。2.COLUNM指定列名。
2025-12-24 20:37:36
171
原创 MySQL_INSERT UPDATE DELETE语句
6.可以以 INSERT INTO tab_name(列名) values (),(),()的形式添加多条记录。4.如果需要修改多个字段,可以通过 set字段1 = 值1,字段2 = 值2......2.DELETE语句不能删除某一列的值,(可使用update 设为null或者' ')8.默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错。3.在values中列出的数据位置必须与被加入的列的排列位置相对应。7.如果是给表中的所有字段添加数据,可以不写前面的字段名称。将删除表中的所有数据。
2025-12-24 18:05:44
298
原创 MySQL表的操作指令与常用数值类型
在存放文本时 ,也可以使用Text数据类型, 可以将TEXT列视为VARCHAR列, 注意Text不能有默认值,大小为0-2^16字节,如果需要存放更多字符,可以选择MEDIUMTEXT 0-2^24 或者LONGTEXT 0-2^32。varchar(4)是变长,也就是说,即使插入'aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(varchar本身还需要占用1-3个字节来记录存放内容长度)1.如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等,
2025-12-18 22:59:47
552
原创 MySQL数据库操作指令
2.COLLATE:指定数据库字符集的校对规则 (常用的utf8_bin(区分大小写) ,utf8_general_ci(不区分大小写,默认是这个))mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库3 > 文件名.sql。mysqldump -u 用户名 -p 数据库 表1 表2 表n > d:\\文件名.sql。1.CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf-8。恢复数据库(进入SQLyog再执行)Source 文件名.sql。
2025-12-18 17:14:03
209
原创 Java_MySQL介绍
安装MySQL数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库,DBMS(Database Manage System)DML:数据操作语句(增加insert,修改update,删除delete)DCL:数据控制语句(如管理数据库的用户权限 grant revoke)DDL:数据定义语句(create表,库.....)一个数据库中可以创建多个表,以保存数据(信息)在java程序中,一行记录往往用对象表示。DQL:数据查询语句(select)
2025-12-18 15:24:03
164
原创 Java_反射暴破创建对象与访问类中的成员
getDecalaredConstructor(Class ....class):根据参数列表,获取对应的所有构造器对象。getConstructor(Class ....class):根据参数列表,获取对应的public构造器对象。newInstance:调用类中的无参构造器,获取对应类的对象。测试1:通过反射创建某类的对象,要求该类中必须有public的无参构造。测试2:通过调用某个特定构造器的方式,实现创建某类的对象。1.方式一:调用类中的public修饰的无参构造器。
2025-12-17 16:14:53
276
原创 Java_通过反射获取类的结构信息
说明:默认修饰符是0,public是1,private是2,protected是4,static是8,final是16。3.getFields:获取所有public修饰的属性,包含本类以及父类的。第四组:java.lang.reflect.Constructor类。11.getInterfaces:以Class[]形式返回接口信息。第三组:java.lang.reflect.Method类。第二组:java.lang.reflect.Field类。1.getModifiers:以int形式返回修饰符。
2025-12-16 22:21:27
237
原创 Java_类的加载
3.虚拟机会保证一个类的<clinit>()方法在多线程环境中被正确的加锁,同步,如果多个线程同时去初始化一个类,那么只会有一个线程去执行这个类的<clinit>()方法,其他线程都需要阻塞等待,直到活动线程执行<clinit>()方法完毕。JVM在该阶段的主要目的是将字节码从不同的数据源(可能是class文件,也可能是jar包,甚至网络)转化为二进制字节流加载到内存中,并生成一个代表该类的java.lang.Class对象。1.静态加载:编译时加载相关的类,如果没有则报错,依赖性太强。
2025-12-16 21:06:39
393
原创 Java_Class类
7.类的字节码二进制数据,是放在方法区的,有的地方称为类的元数据(包括 方法代码,变量名,方法名,访问权限等等)3.前提:已知某个类的实例,调用该实力的getClass()方法获取Class对象,实例。3.对于某个类的Class类对象,在内存中只有一份,因为类只加载一次.2.Class类对象不是new出来的,而是系统创建的。5.通过Class对象可以完整的得到一个类的完整结构。应用场景:多用于配置文件,读取类全路径,加载类。应用场景:通过创建好的对象,获取Class对象。6.Class对象是存放在堆的。
2025-12-16 16:18:27
277
原创 Java_反射机制
2.加载完类之后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了类的完整结构信息,通过这个对象得到类的结构.这俄格Class对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为:反射。3.参数值为true表示 反射的对象在使用时取消访问检查,提高反射的效率,参数值为false则表示反射的对象执行访问检查。3.java.lang.reflect.Field:代表类的成员变量,Field对象表示某个类的字段(成员变量)2.在运行时构造任意一个类的对象。
2025-12-11 15:09:25
385
原创 Java_网络上传文件与netstat指令
然后读取客户端发送的第二行数据,如果是"hobby",则回复"编写java程序",否则打印"你说啥呢"。读取客户端发送的第一行数据,如果是"name",则回复"我是.....",否则打印"你说啥呢"。发送"name",然后接收服务端的回复,应该是"我是.......",否则打印"你说啥呢"。发送"hobby",然后接收服务端的回复,应该是"编写java程序",否则打印"你说啥呢"。4.服务器端接收到客户端发送的图片,保存到src下,发送"收到图片"再退出。5.客户端接收到服务端发送的"收到图片",再退出。
2025-12-02 22:00:45
228
原创 Java_TCP网络通信编程
3.客户端连接到服务器端,发送"hello,server",并接收服务器端回发的"hello,client",再退出。3.客户端连接到服务器端,发送"hello,server",并接收服务器端回发的"hello,client",再退出。4.服务器端接收到客户端发出的信息,输出,并发送"hello,client"再退出。4.服务器端接收到客户端发出的信息,输出,并发送"hello,client"再退出。3.客户端连接到服务器端,发送"hello,server",然后退出。1.编写一个服务器端,和一个客户端。
2025-11-24 17:43:16
387
原创 Java_网络编程_InetAddress类与Socket类
4.获取InetAddress对象的地址 getHostAddress。4.Socket允许程序把网络链接当成一个流,数据在两个Socket间通过IO传输。3.获取InetAddress对象的主机名 getHostName。1.套接字(Socket)开发网络应用程序被广泛采用,以至于称为事实上的标准。5.一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。2.通信的两端都要有Socket,是两台机器间通信的端点。4.基于Socket的TCP编程。UDP编程(不可靠)
2025-11-24 15:53:57
322
原创 Java_网络编程基础相关概念
TCP/IP(Transmission Control Protocol / Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议,Internet国际互联网络的基础,简单地说,就是有网络层的IP协议和传输层的TCP协议组成的。在网络编程中,数据的组织形式,就称为协议,协议的目的就是为了保证两个程序之间能够通讯,自定义的协议在TCP/IP协议之上。广域网:覆盖范围最大,可以覆盖全国,甚至全球,万维网是广域网的代表。
2025-11-24 13:48:54
447
原创 Java_Properties
store:将Properties中的键值对存储到配置文件(如果实现已经存在,就相当于覆盖,在idea中,保 存信息到配置文件,如果含有中文 ,会存储为unicode码。setProperty(key,value):设置键值对到Properties对象(如果没有,就相当于添加)3.使用Properties类完成对mysql.properties的读取,并修改某个key-val。load:加载配置文件的键值对到Properties对象。getProperty(key):根据键获取值。
2025-11-22 17:12:13
382
原创 Java_InputStreamReader与OutputStreamWriter
1.编程 将字节流FileInputStream转换成字符流InputStreamReader,对文件进行读取(按照UTF-8格式),进而再包装成BufferedReader。1.InputStreamReader:Reader的子类,可以将InputStream字节流包装成Reader字符流。3.当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换成字符流。4.可以在使用时指定编码格式(如 UTF-8,GBK,GB2312,ISO8895-1 等)
2025-11-22 00:14:14
172
原创 Java_对象处理流ObjectInputStream与ObjectOutputStream
4)序列化对象时,默认将里面所有属性都进行序列化,但除了static或transient修饰的成员。6)序列化具备可继承性,也就是如果某类已经实现了序列化,则它的所有子类也已经默认实现了序列化。2)要求实现序列化和反序列化对象,需要实现Serializable。1.功能:提供了对基本类型或对象类型的序列化和反序列化的方法。5)序列化对象时,要求里面属性的类型也需要实现序列化接口。2.反序列化就是在恢复数据时,恢复数据的值和数据类型。1.序列化就是在保存数据时,保存数据的值和数据类型。
2025-11-21 23:02:59
250
原创 Java_字节处理流BufferedInputStream与BufferedOutputStream
BufferedOutputStream是字节流,实现缓冲的输入流,可以将多个字节写入底层输出流中,而不必对每次字节写入调用底层系统。BufferedInputStream是字节流,在创建BufferedInputStream时,会创建一个内部缓冲区数组。编程完成图片/音乐的拷贝。
2025-11-21 20:23:14
444
原创 Java_字符处理流BufferedReader与BufferedWriter
2.处理流(也叫包装流)是"链接"在已存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能.如BufferedReader,BufferedWriter。2.处理流(也叫包装流)包装节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出。2.操作的便捷:处理流可能提供了一系列便捷的方法来一次输入输出大批量的数据,使用操作更加灵活方便。1.节点流可以从一个特定的数据源读写数据,如FileReader,FileWriter。1.节点流是底层流/低级流,直接跟数据源相接。
2025-11-21 16:55:22
166
原创 Java_IO流原理及流的分类
1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输,如读/写文件,网络通讯等。3.Java.io报下提供了各种"流"类和接口,用以获取不同种类的数据,并通过方法输入或输出数据。1)Java的I/O流共涉及40多个类,实际上非常规则,都是从如上四个抽象基类派生的。2.Java程序中,对于数据的输入/输出操作以"流"(Stream)"的方式进行。4.输入input:读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存)中。按流的角色不同分为:节点流 ,处理流/包装流。
2025-11-21 00:09:48
120
原创 Java_FileReader与FileWriter
2)read:每次读取单个字符,返回该字符,如果到文件末尾返回-1 (这个是字符不是字节,所以可以用来读取汉字)2)new String(char[],off,len):将char[]的指定部分转换为String。3)read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1。1))new FileWriter(File/String):覆盖模式,相当于流的指针在首端。5)write(char[],off,len):写入指定数组的指定部分。
2025-11-21 00:05:15
188
原创 Java_FileInputStream与FileOutputStream
2.BufferedInputStream:缓冲字节输入流。3.ObjectInputStream:对象字节输入流。InputStream抽象类是所有类字节输入流的超类。1.FileInputStream:文件输入流。InputStream:字节输入流。
2025-11-20 17:52:47
239
原创 Java_线程基础
案例:创建一个子线程,每隔1s 输出hello,输出20次,主线程每隔一秒,输出hi,输出20次.要求:两个线程同时执行,当主线程输出5次后,就让子线程运行完毕,主线程再继续。可知,run() 就是一个普通方法,没有真正启动一个线程,就会有线程阻塞的问题,即要先把run() 执行完毕,才继续向下执行,就不是多线程了(相当于是单线程,串行化的执行)编写一个程序,创建两个线程,一个线程每隔一秒输出"hello,world",输出10次,退出,一个线程每隔一秒输出"hi",输出5次,退出。
2025-11-17 17:14:25
1314
原创 Java事件处理机制
2.事件:事件就是承载事件源状态改变时的对象,比如当键盘事件,鼠标事件,窗口事件等等,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象有含义被按下键的Code值.Java,awt.event包和javax.swing.event包中定义了各种事件类型。Java事件处理是采取"委派事件模型",当事件发生时,产生事件的对象,会把此"信息"传递给"事件的监听者"处理,这里所说的"信息"实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为"事件的对象"
2025-11-15 23:24:05
320
原创 Java绘图技术
在屏幕显示的时候,程序会自动地调用paint()方法来绘制组件。1.paint(Graphics g)绘制组建的外观。2.repaint()刷新组件的外观。3.repaint函数被调用。1.窗口最小化,再最大化。2.窗口的大小发生变化。
2025-11-15 20:44:37
306
原创 Java_泛型的继承和通配符
super A>:支持A类以及A类的父类,不限于直接父类,规定了泛型的下限。extends A>:支持A类以及A类的子类,规定了泛型的上限。> :支持任意泛型类型。1)泛型不具备继承性。
2025-11-14 23:10:10
384
原创 Java_自定义泛型类/接口/方法
3)public void eat(E e){ } 修饰符后没有<T,R......> 则eat() 不是泛型方法,而是使用了泛型。4)泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)1)接口中,静态成员也不能使用泛型(这个和泛型类规定一样)5)如果在创建对象时,没有指定类型,默认为Object。1)泛型方法,可以定义在普通类中,也可以定义在泛型类中。2)泛型接口的类型,在继承接口或实现接口时确定。1)普通成员可以使用泛型(属性,方法)3)静态方法(属性)中不能使用类的泛型。
2025-11-14 22:37:45
323
原创 Java_泛型入门
3)Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常,同时,代码更加简洁,健壮。4)泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。说明:1,其中,T,K,V 不代表值,而是表示类型 2.任意字母都可以,常用T表示,是Type的缩写。1)泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题。默认给它的泛型就是<E>,E就是Object ,即。
2025-11-14 21:12:43
148
原创 Java_Collections工具类
2)Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素。4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序。5)swap(List,int,int):将指定list集合中的i 处元素和j 处元素进行交换。1)Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素。1)reverse(List):反转List元素中的顺序。
2025-11-08 22:16:03
154
原创 Java_TreeSet与TreeMap源码解读
TreeMap使用方法时,由于是作为键值对添加进去的,此时e 就等于key,而PRESENT 就等于value。TreeSet在使用方法时,e作为元素添加,而PRESENT作为一个用于占位的空对象,表示没有意义。
2025-11-08 18:40:45
191
原创 Java_开发中的集合类选择
插入和取出顺序一致:LinkedHashSet,维护数组+双向链表(底层是LinkedHashMap)无序:HashSet(底层是HashMap,维护了一个哈希表 即(数组+链表+红黑树))改查多:ArrayList(底层维护了一个Object类型的可变数组,通过索引定位)键无序:HashMap(底层是:哈希表 JDK7数组+链表, JDK8:数组+链表+红黑树)键插入和取出顺序一致:LinkedHashMap(底层是HashMap)1)先判断存储的类型(一组对象[单列]或一组键值对[双列])
2025-11-08 16:45:45
162
原创 Java_Map接口实现类Properties
3)Properties还可以用于从 xxx.properties文件中加载数据到Properties类对象,并进行读取和修改。1)Properties类继承自Hashtable类并实现了Map接口,也是使用一种键值对的形式来保存数据。4)说明:工作后 xxx.properties 文件通常作为配置文件,在后面的IO流会举例。2)它的使用特点和Hashtable类似。
2025-11-07 23:55:21
217
原创 Java_Hashtable使用及扩容
2)Hashtable的键和值都不能为null ,否则抛出NullPointerException。4)Hashtable是线程安全的(synchronized),HashMap是线程不安全的。1.Hashtable底层是一个Hashtable$Entry类型的数组,初始化大小为11。2.threshold(临界值)是8, 由11*加载因子(0.75)得到。3)Hashtable使用方法基本上和HashMap一样。1)存放的元素是键值对,即 K-V。
2025-11-07 23:22:24
164
原创 Java_HashMap底层机制与原码解读
3)当添加key-val 时,通过key的哈希值得到在table 的索引.然后判断该索引处是否有元素,如果没有元素则直接添加,如果该索引处有元素,继续判断该元素的key是否和准备加入的key 相等,如果相等,则直接替换val ,如果不相等需要判断是树结构还是链表结构,做出相应处理.如果添加时发现容量不够,则需要扩容。5)如果添加相同的key,则会覆盖原来的key-val,等同于修改(key会替换,val不会替换)6)与HashSet一样,不保证映射的顺序,因为底层是以hash表的方式存储的。
2025-11-07 22:34:46
232
原创 Java_Map接口分析和常用方法,遍历方式
8)Map接口存放数据的key - value示意图,一堆 k-v是放在一个HashMap$Node 中的,Node 实现了Entry 接口,有些书上也说 一对 k - v 就是一个Entry。5)Map的key可以为null,value也可以为null,注意key为null,只能有一个,value为null,可以有多个。2)Map中的Key 和value 可以是任何引用类型的数据,会封装到HashMap$Node对象中。2)keySet:获取所有的键。4)values:获取所有的值。
2025-11-07 15:46:23
270
原创 Java_LinkedHashSet源码分析
3)LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表来维护元素的次序,这使得元素看起来是以插入顺序保存的(也就是说取出顺序和添加顺序是一样的,即存储位置无序,取出有序)3)在添加一个元素时,先求hash值,再求索引,确定该元素在table的位置,然后将添加的元素加入到双向链表(如果已经存在,则不添加【原则和hashset一样】)1)在LinkedHashset中维护了一个hash表和双向链表(LinkedHashSet由head和tail)
2025-11-06 21:56:46
149
原创 Java_HashSet源码分析
3.在Java8中,如果一条链表的元素个数到达THEEIFY_THRESHOLD(默认是8),并且table的大小 >= MIN_TREEIFY_CAPACITY(默认是64),就会进行树化(红黑树),6.在Java8中,如果一条链表的元素个数到达THEEIFY_THRESHOLD(默认是8),并且table的大小 >= MIN_TREEIFY_CAPACITY(默认是64),就会进行树化(红黑树)5.如果有,调用equals 比较,如果相同,就放弃添加,如果不相同,则添加到最后(是挂在节点的next上)
2025-11-06 17:19:19
922
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅