java学习
文章平均质量分 64
肖大仙~
从头开始学习的计算机小白!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDBC 总结
JDBC : 定义了一套 java 操作所有关系型数据库的规则(接口)JDBC 本质:sun公司定义的一套关系型数据的接口,然后各个数据库厂商去实现这个接口,提供数据库去驱动jar包,我们可以使用这套接口编程,真正执行的代码是驱动Jar 包中的实现类快速入门1. 导入驱动Jar包2. 注册驱动3. 获取数据库连接对象 connection4. 定义sql5. 获取执行sql语句的对象 statement6. 执行sql,接受返回结果7. 处理结果8. 释放资源代码实现: Publ原创 2021-07-19 17:08:26 · 144 阅读 · 0 评论 -
仿QQ聊天室项目功能总结
项目源码开源在gitee(码云)地址:https://gitee.com/xiaoclgitee/imitation-qq-chat-room项目功能总结:1、页面制作,采用Java 的Swing的Jframe 的框架进行GUI的制作主要有三个界面:1、用户登录界面 2、用户聊天窗口界面 3、服务台后台界面用户的登录界面主要有三个地方:一个是用户名和密码的输入框(用的JTextField),还有两个(JBbutton),一个是注册,另外一个是登录。 假如,我们点击的是注册的功能,这个时候就会原创 2021-07-15 23:36:20 · 581 阅读 · 0 评论 -
java的异常体系
Throwable 是异常的根类:主要分为两个部分:1、Error : 程序无法处理的系统错误,编译器不做检查,属于JVM 层面需要负担的责任2、Exception :程序可以处理的异常,捕捉后可以恢复而 Exception 又可以分为:1、RuntimeException 编写代码时不可预知的,应当编写代码的时候自行避免注意2、非RuntimeException 可以预知的,编译器校验的时候可以检查出来,编写代码的时候,应当捕获并且进行相应的处理,也成为可检查的异常主要常见的原创 2021-07-13 15:28:32 · 142 阅读 · 0 评论 -
基于TCP/IP 协议的多人同步聊天,多线程(UI)
这次实现的是,多人同步聊天,而且客户端是具有UI的客户端聊天界面的。如下图所示:我开启了三个客户端,每个客户端都有一个自己的聊天界面,并且每个人说话都是可以实时的显示在别人的UI界面中的。并且聊天窗口实现了滚屏的效果。很棒!下面我先把代码的结构截图一下:可以看到,在Chat2的模块下,我们有三个包,一个是Client客户端,一个是Server服务端,另外一个是Util工具包。1、首先来介绍Server包:Server 类是用来创建服务端的ServerScoket的对象的,等待连接的客户端。原创 2021-06-10 15:11:35 · 637 阅读 · 0 评论 -
基于TCP/IP协议的聊天室(无UI)
整体思路服务端(Server),建立ServerSocket 的对象,循环建立一个监听是否有客户端连接的对象,每有一个客户端连接则建立一个线程(MyChannel),把与客户端连接的socket套接字传进去并启动该线程。(MyChannel)每个线程对象的具体功能:接收来自客户端的数据然后分发给每个客户端数据(除了自己)客户端(Client),建立与服务器的连接,并输入客户端的名称。为了循环的读取来自服务端发送的数据,以及从键盘上读取数据并写出去,我们可以分开建立两个读取(Receive原创 2021-06-08 20:50:43 · 550 阅读 · 0 评论 -
IO流的输入输出(常用)
Input/Output 读取/写入1、字节流InputSreeam 抽象类,表示字节输入流的超类(父亲)/OuputStream 抽象类,表示字节输出流的超类(父亲)FileOutputStream (String name) :创建文件输出流以制定的名称写入文件(三种方法)void write(int b)void write(byte[] b)void write(byte[] b,int off,int len)!注意三个小问题实现换行:windows: \r\n原创 2021-06-07 21:20:20 · 538 阅读 · 0 评论 -
Socket通信原理(多线程)
我们在日常上网时,会经常登录某个网址,发送我们的请求信息,然后从该网站得到我们想要的信息。这个是怎么实现的呢。其实,我们可以把我们自己当成客户端,网站当成服务端。其实这是个相对的概念,就是谁收到请求,谁就是服务端;谁发送请求,谁就是客户端。而发送和接收请求都是基于Socket 对象实现的。而这个过程是怎么样的呢?(这里介绍的是基于TCP/IP 的通信)下面我先用一个简单的图解表示一下:通过上面的图解,我们可以很清晰的看到整个通信的流程。对于编码来实现的话,我们首先需要编写服务端,然后再编写客户端。原创 2021-05-31 21:35:23 · 6592 阅读 · 7 评论 -
简单理解多线程(图解)
对于初学者来说,多线程是个比较难以理解或者比较容易迷糊的概念。并且和许多概念联系在一起,所以比较容易绕晕。这里我根据自己的理解,把多线程和一些其它的概念分辨一下,巩固理解。1、线程和进程我们先看一下下面的图:可以看到,进程是包含线程的,而操作系统又是包含进程的。进程的概念:是我们程序运行的实例。是操作系统分配资源的基本单位。线程的概念:线程是进程代码中的某个代码块,一个进程可以有1个或者多个线程,是CPU分配资源的基本单位。我们可以这样理解:我们把进程当成一个工厂,而每个线程当成工厂里的每个工人原创 2021-05-24 15:28:26 · 3719 阅读 · 0 评论 -
死锁
讲到死锁,首先我们需要知道什么是锁?只有清楚了锁的概念,我们才会明白死锁的真正含义。下面我会按照我的理解,分成几部分来阐述:我们为什么需要锁以及锁的概念为什么会出现死锁怎么解决死锁产生死锁的代码案例synchronized 实现死锁以及解决办法Lock 实现死锁以及解决办法1、 我们为什么需要锁以及锁的概念在单线程的时候,我们往往不需要考虑到锁的概念,因为单线程的时候,系统和变量资源是被一个线程使用,按照代码顺序执行。但是当我们考虑到多线程的时候,就需要考虑到资源的安全性了。比如,原创 2021-05-22 16:14:15 · 147 阅读 · 0 评论 -
java 关键字分类大全
java 关键字一共有51+2(保留关键字)=53个基本类型:booleantruefalsebytecharshortintlongfloatdoublenull变量引用:thissupervoid包相关importpackage访问权限修饰publicprivateprotected类,方法,变量修饰符classextendsinterfaceimplementsstaticabstractfinalnewnative原创 2021-05-19 18:59:54 · 327 阅读 · 0 评论 -
Object 类的方法分析
Object 类的常用方法hashcode() 和 equals()两个属于Object 的类方法,一般会重写如果不重写 hashCode() 返回对象的地址值,equals() 用来比较两个对象的地址值是否一样如果重写,hashCode() 返回对象的哈希值,equals() 比较两个对象的成员信息是否相同在HashSet集合 中,通过hashCode() 和equals() 保证元素的唯一性在判断两个对象是否相同时,首先判断两个对象的的哈希值是否相同,不相同则两个对象是不相同的;原创 2021-05-15 15:44:08 · 128 阅读 · 0 评论 -
集合体系结构(Collection)
集合1.1 集合类体系结构单列:Collection可重复 list 实现类:ArrayList ,LinkedList …不可重复 set 实现类:HashSet, TreeSet…双列: Map 实现类: HashMap…Collection 是一个接口:Public interface Collection< E >使用,通过多态的方法: public static void main(String[] args) { Col原创 2021-05-14 22:02:46 · 1123 阅读 · 0 评论 -
java工具类的学习(Arrays,日期类,基本类型包装类以及int和String 的相互转换)
Arrays 的工具类Arrays 作为工具类有两个常用的方法1、Arrays.toString(int[]) 返回指定数值内容的字符串表示形式2、Arrays.sort(int[]) 按照数值顺序排列指定的数组、public class Demo { public static void main(String[] args) { int[] arr= {24,69,80,57,13}; System.out.println("排序前"+ A原创 2021-05-09 15:49:57 · 190 阅读 · 0 评论 -
动态数组的封装(泛型)
动态数组之前我们一直实现的是静态数组,并不能满足我们对于数组大小的灵活性,当我们想要向数组中添加数据时,发现我们的数组已经没有内存空间了,这个时候我们应该怎么办?其实简单的方法就是,我们重新开辟一个空间,比如数组的大小是之前的两倍,然后再把之前的数组的内容一个个重新复制到新数组中,进而往后添加我们想要的数组内容。而之前的数组,由于没有对象指引,java的垃圾回收机制就会自动的帮助我们处理掉这个不用的内存空间。在之前代码的基础上,我们只需要重新添加一个新的方法: // 定义新数组,容量是之前的两倍原创 2021-05-08 19:56:59 · 261 阅读 · 0 评论 -
静态数组类的封装(泛型)
泛型是指“任意”种类型这里的任意不包含8种基本数据类型,是能类对象但是我们可以使用每种数据类型对应的包装类boolean->Booleanbyte ->Bytechar->Charshort->Shortint->Integerlong->Longfloat->Floatdouble->Double如过想要定义数组的泛型,可以在定义类的时候,加上一个<>,里面加上我们想要的类型,比如public class Arra原创 2021-05-08 19:33:53 · 159 阅读 · 0 评论 -
静态数组类的封装(int类型)
这里我们定义一个自己的数组类,首先我们完成静态的数组类封装。要求:定义一个包含int类型的数组类,构造方法中传入我们想要的数组容量,默认是10.包含的属性:private int[] data; 定义一个int类型的数组private int size; 定义数组包含元素的大小注意这里没有考虑数组的容量,其实我们可以通过数组的length的方法可以获取数组的容量包含的方法:数组的方法主要包含增删改查,下面的方法都是增删改查的扩展(这里简单写了15个):三个获取数组属性的方法获原创 2021-05-08 19:11:02 · 757 阅读 · 0 评论 -
进程,线程,共享变量以及Java内存模型
1、进程、线程,多线程进程:进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位。进程就是程序,有独立的运行内存空间,比如应用和后台服务,比如windows是一个支持多进程的操作系统。内存越大能同时运行的程序越多,在java里一个进程指的是一个独立运行在JVM的程序。如下图,这里就有13个应用进程,以及后台的113个后台进程。线程:线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)。一个程序里运行的多个任务,每个任务就是一个线程,线程是共享内存的。在QQ,微信,钉钉等软件原创 2021-05-07 22:17:48 · 606 阅读 · 2 评论 -
java线程的概念和创建
线程的概念一个程序是一个进程,比如qq和腾讯会议,当我们运行这些软件的时候,相当于在运行一个进程。进程中包含多个进程,多个进程相互争夺CPU资源,轮流执行任务,完成一个进程的任务。举一个例子,我们在做Swing 窗口化界面的时候,为不同的组件添加监听器的时候,其实每个监听器相当于不同的线程。我们在写java程序的时候,也可以自己创建线程。创建线程一共有两种方式。一个是继承Thread的类另外一个是实现Runable的接口,并可以实现同一资源的多个使用。两种也有不同的启动方式:例子:卖票的原创 2021-05-07 16:20:31 · 137 阅读 · 0 评论 -
java学习---类与对象,接口
文本记录了自己的理解,以及在学习实践过程中的经历类与对象1.1 什么是对象生活中万物皆为对象,客观存在的我们都可以称之为对象。1.2 什么是面向对象我们关注的某个具体事物的信息的动作称之为面向对象1.3 什么是类类是现实生活中一类具有共同属性和行为的事物的抽象类的特点:类是对象的数据类型类是具有相同属性和行为的一组对象的集合1.4 什么是对象的属性和行为属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值行为:对象能够执行的操作1.5 类和对象的关系类:类是现实生活中原创 2021-04-20 17:35:40 · 294 阅读 · 0 评论
分享