- 博客(24)
- 收藏
- 关注
原创 正则表达式
package com.shujia.java.day27.regulardemos; /* 校验QQ号是否合法 1、必须是5-11位 2、0不能作为QQ号的开头 3、必须全部都是数字 校验输入的邮箱是否合法: 1、名称有数字字母特殊字符组成 2、长度5-10 3、必须含有@符号 4、... ...
2021-10-29 21:33:26
364
原创 Java反射01
类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三部来实现对这个类进行初始化 加载 就是指将class文件读入内存,并为之创建一个Class对象 任何类被使用时系统都会建立一个Class对象 连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 解析 将类的二进制数据中欧的符号引用替换为直接引用 初始化 就是我们以前讲过的初始化步骤 类的初始化时机 创建类的实例 访问类的静态
2021-10-29 21:28:18
236
原创 Java设计模式和网络编程02
网卡 物理端口 网卡口 逻辑端口 我们指的就是逻辑端口 1、每个网络程序都会至少有一个逻辑端口 2、用于表示进程的逻辑地址,不同进程的标识 3、有效端口:0~65535,其中0~1024系统使用或保留端口 通过netstat -ano可以查看端口号 协议UDP和TCP Socket Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字 Socket原理机制 通信的两端都有Socket 网络通信其实就是Socket间的通信 数据
2021-10-29 21:22:51
215
原创 Java设计模式和网络编程01
面向对象设计原则 单一职责原则 其实就是开发人员经常说的“高内聚,低耦合” 也就是说每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。在设计模式中,所有的设计模式都遵循这一原则 开闭原则 核心思想:一个对象对外扩展开放,对修改关闭 其实开闭原则的意思就是:对类的改动是通过增加代码进行的,而不是修改现有代码 也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动他,而是要保证他能一直运行下去,如何能够做到这一点呢?这就需要借助于抽象和多态,即把可能变化的内容抽象
2021-10-29 21:18:56
224
原创 Java多线程01
多线程 概述 线程是依赖于进程而存在的 进程 正在运行的程序,是系统进行资源分配和调用的独立单位 每一个进程都有他自己的内存空间和系统资源 线程 是进程中的单个顺序控制流,是一条执行路径 一个进程如果只有一个执行路径,则被称为单线程程序 一个进程如果有多条执行路径,则被称为多线程程序 意义 多线程的作用不是提高执行速度,而是为了提高应用程序的使用率 而多线程却给了我们一个错觉,让我们认为多个线程是并发执行的,其实不是 因为多个线程共享同一个进程的资源(堆内存和方法区),但是栈内存是
2021-10-29 21:14:03
270
原创 Java的IO流
File类 概述 文件和目录路径名的抽象表示形式 (仅仅是一个路径的表示,并不代表具体的事物一定是存在的) 构造方法 public File(String pathname) 根据一个路径名称得到一个File对象 注意:File path=new File("."); 表示的是当前目录 public File(String parent,String child) 根据一个目录和一个子文件(目录)得到一个File对象 File path = new File("E:\Java");
2021-10-29 21:03:08
186
原创 Java异常
异常 概述 异常就是java程序在运行过程中出现的错误 异常由来:问题也是现实生活中一个具体事务,也可以通过java的类的形式进行描述,并封装成对象。其实就是java对不正常情况进行描述后的对象体现 JVM的默认处理方案 把异常的名称,错误原因以及异常出现的位置等信息输出在了控制台 程序停止执行 /* jvm发现运算是已经违反了数学运算规则,java将这种常见的问题进行描述,并封装成了对象叫做 ArithmeticException 当除..
2021-10-20 10:14:46
139
原创 Java集合04
TreeSet类 概述 使用元素的自然顺序对元素进行排序 或者根据创建set时提供的Comparator比较器进行排序 具体取决于使用的构造方法 排序: 1、自然排序(传入的数据类型具备实现了Comparable接口) 2、比较器排序 在创建集合的时候,调用带参数的构造方法,这个参数是实现了Comparator接口的子类对象 TreeSet保证元素的排序和唯一性 底层数据结构是红黑树(红黑树是一种自平衡的二叉树) 注意:若将自建类对象存储进TreeSet需要实现comparab..
2021-10-18 22:57:08
169
原创 Java集合03
泛型 JDK1.5以后出现的机制 概述 泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。 也被成为参数化类型,可以把类型当做参数一样传递过来,在传递过来之前我不明确,但是在使用的时候我就用明确了 为什么会有泛型呢? 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这种隐患,所以java提供了泛型来解决这个安全问题 优点 1、提高了程序的安全性 2、将运行期遇到的问题转移到了编译器 3、省去了类型强转..
2021-10-18 22:50:57
174
原创 Java集合01
概述 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,java就提供了集合类 数组和集合类的区别 两者同是容器,数组虽然也可以存储对象,但长度是固定的呃;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象 特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象 Collection接口 概述 Collection层次结构中的根接口。Collection表示一组对象,这些对象也成为collection的元素。一些collection允许有..
2021-10-18 22:44:03
124
原创 Java的常用类02
String类的其他功能 替换功能 String replace(char old,char new) String replace(String old,String new) 去出字符串两边空格 String trim() 按字典顺序比较两个字符串 int compareTo(String str) int compareToIgnoreCase(String str) StringBuffer类 概述 我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对..
2021-10-09 21:35:23
147
原创 Java常用类01
API(Application Programming Interface) 应用程序接口 java API指的就是JDK中提供的各种功能的Java类 Object类 概述 类层次结构的根类 所有类都直接或者间接的继承自该类 构造方法 public Object() 成员方法 public int hashCode() 1、返回该对象的哈希码值。在默认情况下,该方法会根据对象的地址来计算 2、不同对象的hashCode()一般来说不会相同 但是,同一个对象的hashCode()..
2021-10-08 21:49:47
169
原创 Java面向对象05
final关键字 最终的意思,可以修饰类,成员变量和成员方法 作用 修饰类,类不能被继承 修饰变量,就变成了常量,只能怪被赋值一次 修饰方法,方法不能被重写 重点 1、final修饰局部变量 在方法内部,该变量不可以被改变 在方法声明上 基本类型,是值不能被改变 引用类型,是地址值不能被改变 2、final修饰变量的初始化时机在对象构造完毕之前即可 多态 概述 某一个事物,在不同时刻表现出来的不同状态 前提和体现 1、有继承关系 2、有方法重写 3、有父类的引用指向
2021-09-29 21:52:11
157
原创 Java面向对象03
文档注释和帮助文档 文档注释 /** *这是针对猫对象相关的工具类 *@author xx *version V.1.0 */ class Cat{ /** *这是无参构造方法 */ Cat(){ } /** *这是猫吃饭的方法,XXXXX *@param str 这是调用该方法需要传入的参数 */ public void eat(String str){ } } 制作帮助文档(A...
2021-09-27 22:56:50
138
原创 输入一串数字字符,输出所有的排列组合
之前有人问了我这样一个题目 输入一串数字字符,然后输出该字符内所有数字的排列组合。 例如:输入123,输出123,132,213,312,231,321 先在此声明一下,本人也在学习编程的道路上前进,若有错误请指正,共同进步 解题思路: 我是这么想的,直接处理字符,肯定不好处理,所以需要转换成数组,先用String类型的toCharArray方法,将数字字符转化为char[]类型数组,处理数组肯定比处理字符串要好很多 我输出数字的排列组合的想法是 比如这里有一个数组char[] a={'1
2021-09-26 10:45:04
3768
原创 String和数组类型作为参数传递的问题
public class Test { String str=new String("good"); char[] ch={'a','b','c'}; public static void main(String[] args) { Test test=new Test(); test.change(test.str); System.out.print(test.str+" and "); System.out..
2021-09-24 20:48:20
882
原创 Java面向对象01
面向对象思想 面向对象的思想是基于面向过程的思想 什么是面向过程? 强调的是每个功能的实现步骤(参与者) 什么是面向对象? 强调的是对象,使用对象来调用这个功能(指挥者) 特点 1、是一种更加符合我们思想习惯的一个概念 2、可以将复杂的事情简单化 3、将我们从参与者编程了指挥者 举例 把大象装进冰箱里 面向过程思想 1、打开冰箱门 2、把大象塞进冰箱里 3、关上冰箱门 面向对象思想 1、使用遥控器控制冰箱的门打开 2、雇人把大象塞进冰箱里 3、使用遥控器关闭冰箱门 如
2021-09-24 20:30:26
142
原创 Java基础语法05
二维数组概述 本质就是一个元素是一维数组的数组 格式 动态初始化 数据类型[] [] 变量名 = new 数据类型[m][n] 数据类型[] [] 变量名 = new 数据类型[m][] 这个格式没有直接给出一维数组的元素个数,可以动态的给出 静态初始化 数据类型[] [] 变量名 = new 数据类型[][]{{元素。。},{元素。。。}} 辅助理解 把二维数组看做一维数组,只不过里面的元素也是一维数组,类似于俄罗斯套娃 注意 基本数据类型当做参数传递的时候,传递的是具体的值,本身
2021-09-23 20:08:15
148
原创 Java基础语法04
跳转控制语句 break中断 使用场景: 1、在选择结构switch语句中 2、在循环语句中 3、离开使用场景的存在是没有意义的 作用: 1、跳出单层循环(单个用是跳出单层循环) 2、跳出多层循环(带标签的跳出可以跳出多层循环) //cj是自定义的层级,即标签 cj:for(int i=0;i<5,i++){ for(int j=0,j<i,j++){ System.out.print("*"); if(i=3){ ...
2021-09-18 21:10:31
244
原创 Java基础语法03
键盘录入数据 实现: 导入包:import java.util.Scanner; 创建对象:Scanner sc=new Scanner(System.in); 接收数据:int x=sc.nextInt(); 流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。 顺序结构 没有特定的语法结构,按照代码的先后顺序,依
2021-09-17 21:14:47
118
原创 Java基础语法02
变量 定义:在程序执行的过程中,在某个范围内其值可以发生改变的量。本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用必须事先声明,然后必须进行初始化。 格式:数据类型 变量名=变量值; 数据类型 数据类型分为基本数据类型和引用数据类型。引用数据类型分为类(class)、接口(interface)、数组([]),而基础数据类型则分为数值型、字符型(char)、布尔型(boolean),其中数值型又分为整数类型(byte、short、int、long)以及浮点类型
2021-09-16 21:35:58
143
原创 Java基础语法01
关键字 定义:被java语言定义的具有特殊含义的字符 特点:组成字母都是小写 其中goto和const作为保留字,目前并不使用 标识符(常见命名规则) 定义:就是给类,包,变量等起名时的字符序列 组成规则:只包含英文大小写字符,数字字符,以及$和_ 注意事项:不能以数字开头;不能是关键字;区分大小写 包(本质文件,用于解决相同类名问题) 单层级 全部小写 例如:com 多层级 全部小写 例如:com.file.java等同于com包-->file包-->java包
2021-09-14 22:10:00
225
原创 java概述01
java语言概述 创始人:詹姆斯-高斯林 java原名Oak,后改名为java,正常发音为gava(仅为发音) java后缀为SE时,意为标准版;后缀为ME时,意为小型版;后缀为EE时,意为企业版 java具有以下特点:简单性,面向对象,分布式处理,健壮性,结构中立,开源,跨品台,解释性,高性能,多线程,动态,安全性 java的跨平台性体现在用过java编写的应用程序在不同的系统平台上都可以运行,原理在于java虚拟机(JVM java virtual machine),java程序是由JVM来运
2021-09-13 20:31:58
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅