- 博客(31)
- 收藏
- 关注
原创 Oracle 多表查询
select ss.name,max(decode(ss.subject, ‘语文’, ss.score)) 语文,max(decode(ss.subject, ‘数学’, ss.score)) 数学,max(decode(ss.subject, ‘英语’, ss.score)) 英语 from student_score ss group by ss.name;两个表中没有相同的列名,但是某一个列在另一张表的列的范围之中;,=,!=,between,and连接时称为非等值连接。
2024-05-10 19:40:49
1161
原创 Oracle 函数
select max(decode(type, 1, value)) 姓名,max(decode(type, 2, value)) 性别,max(decode(type, 3, value)) 年龄 from test group by t_id;select decode(type, 1, value) 姓名,decode(type, 2, value) 性别,decode(type, 3, value) 年龄 from test;函数一般是在数据上执行的,它給数据的转换和处理提供了方便。
2024-04-20 21:34:39
1032
1
原创 Oracle数据库的简单使用
关系型数据库1、Mysql(用的最多)2、Oracle(最安全)4、Db2(金融、银行)非关系型数据库1、Hbase2、Redis3、mongodb数据库的版本Oracle8及8i:i表示的是internet,向网络发展,过渡版本,只有一张vcd。8i是过渡性版本。Oracle9i:是之前使用最广泛的版本,8i的升级版。1CDOracle10g:700M过渡性产品,其中g表示的是网格计算。以平面网格,以中心查找。Oracle11g:完整性产品,最新版本2G。
2024-04-19 20:10:49
2705
原创 Java 注解
Annotation是Java5开始引入的新特征,中文名叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annotation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。
2024-04-09 10:49:03
963
原创 Java lambda表达式
Lambda表达式是Java8中最重要的新功能之一。使用Lambda表达式可以替代只有一个抽象函数的接口实现,告别匿名内部类,代码看起来更简洁易懂。Lambda表达式同时还提升了对集合、框架的迭代、遍历、过滤数据的操作。
2024-04-08 10:42:08
848
原创 Java 网络编程
端口是虚拟的概念,并不是说在主机上真的有若干个端口。2、TCP协议通信双方连接建立时双方存在主次之分,而UDP协议通信双方完全平等。1、TCP协议通信双方需要建立连接,而UDP协议通信双方不需要建立连接。IANA负责分配A、B、C类网络地址,具体主机地址由机构组织自行分配。255.255.255.255:当前子网,一般用于向当前子网广播信息。地址类用于指定网络ID并在网络ID和主机ID之间提供分隔方法。127.0.0.1:本机回环地址,用于本机测试。IP地址:32位,由4个8位二进制数组成。
2024-04-06 20:09:57
2039
原创 Java 线程池
在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。(1)线程池中最多执行1个线程,之后提交的线程活动将会排在队列中依次执行。(1)线程池中最多执行1个线程,之后提交的线程活动将会排在队列中依次执行。(2)线程池中的线程可进行缓存重复利用和回收。(1)线程池中的线程处于一定的量,可以很好的控制线程的并发量。(2)线程可以重复被使用,在显式关闭之前,都将一直存在。(1)线程池中具有指定数量的线程,即便是空线程也将保留。(3)当线程池中,没有可用线程,会重新创建一个线程。
2024-04-05 20:13:51
998
原创 Java 多线程
由上述示例可以推测出Threda类和Runnable的子类MyThread都实现了Runnable接口,之后将Runnable的子类MyThread放到Thread之中,测试类调用的是Thread类中的start()方法去启动多线程,实际上具体的执行者是Runnable的子类MyThread中的run()方法中的代码。3、join:当某一个线程等待另一个线程执行结束后,才继续执行时,使调用该方法的线程在此之前执行完毕,也就是等待调用该方法的线程执行完毕后再往下继续执行。3、缺点是内存的浪费,cpu的负担。
2024-03-30 20:35:21
2118
原创 Java IO
File类用于访问文件或目录的属性。程序和数据源之间通过流联系1、输入流和输出流2、字节流和字符流3、节点流和包装流FileInputStream和FileOutputStream以字节流的方式读写文本文件。BufferedReader和BufferedWriter以字符流的方式读写文本文件,而且效率更高。文件操作:FileReader,FileWriter。字符操作:File,File。基本数据类型操作:Data,Data。操作对象:Object,Object。
2024-03-25 16:19:13
966
原创 Java容器
名称存储结构顺序唯一性查询效率添加/删除效率ArrayList顺序表有序(添加)不唯一索引查询效率高低LinkedList链表有序(添加)不唯一低最高HashSet哈希表无序唯一最高最高HashMap哈希表Key无序Key唯一最高最高哈希表有序(添加)唯一最高最高哈希表Key有序(添加)Key唯一最高最高TreeSet二叉树有序(升序)唯一中等中等TreeMap二叉树有序(升序)Key唯一中等中等特性。
2024-03-14 16:31:02
1071
1
原创 Java中的常用类
/ 实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s + “b”。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放在循环中,会极大影响程序的性能。String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回。,例如字符串"Java"就是4个Unicode字符J,a,v,a组成的。Calender类:抽象类,用于设置和获取日期/时间数据的特定部分。// 创建了一个字符串。概念:枚举指由一组固定的常量组成的类型。
2024-03-05 14:52:37
1123
2
原创 异常(Exception)
概念:异常是指程序在运行过程中所发生的不正常的事件,它会中断正在运行的程序;通俗来说就是在程序运行过程中,出现的不正常情况叫做异常。生活中面对异常通常会这样处理生活中,根据不同的异常进行相应的处理,而不会就此中断我们的生活。Java编程语言使用异常处理机制为程序提供了错误处理的能力。何时需要自定义异常?当JDK中的异常类型不能满足程序的需要时,可以自定义异常类。定义异常类。编写构造方法,继承父类的实现。实例化自定义异常对象。使用throw抛出。
2024-02-25 15:43:33
1057
1
原创 接口(interface)
访问修饰符] interface 接口名 [extends 父接口1, 父接口2...] {常量定义 //总是public static final方法定义 //总是public abstract如何实现接口:1、子类通过implements来实现接口中的规范。2、接口不能创建实例,但是可用于声明引用变量类型。3、一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。4、Java的类只支持单继承,接口支持多继承。将一个类定义置入另一个类定义中叫作“内部类”。
2024-02-18 15:29:06
1199
1
原创 Java面向对象的三大特征---多态
多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。1、当父类需要转成子类的时候,要进行强制转换,但是在强制转换之前一定要先判断父类引用指向的子类对象到底是谁, 如果无法确定,在运行过程中可能会出错。对应同一个指令(调用同一个名称的方法),不同的对象给予不同的反应。2、当子类需要向父类转换的时候,直接自动转换,不需要进行任何的判断。为了提高代码的扩展性和维护性,方便代码逻辑的编写。3、运行时,使用父类的类型,子类的对象。
2024-02-05 15:39:26
1129
1
原创 Java面向对象的三大特征---继承
未使用继承优化时:使用继承优化后:表示父类跟子类的关系,当两个类或者多个类具备相同的属性和方法的时候,可以提取出来,变成父类,子类可以继承。好处: 提高代码的复用性!extands的意思是”扩展“。子类是父类的扩展。示例代码:1、编写父类2、编写子类,继承父类super关键字上述代码中出现了super关键字,那其含义是什么呢?super是直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法或属性。用途:访问父类属性:访问父类属性:三、理解
2024-02-04 15:17:11
1044
1
原创 Java面向对象的三大特征---封装
**封装的概念:** 将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而且通过该类提供的方法来实现对隐藏信息的操作和访问。**封装的好处:**1、只能通过规定方法访问数据。2、隐藏类的实现细节。3、方便加入控制语句。4、方便修改实现。**封装的作用和含义:** (狭义的封装)为了保证数据安全和规范将类中的属性设置为私有属性,提供共有的外部方法供程序进行调用,可以实现丰富的细节操作;(广义的封装)可以将完成特定功能的代码块封装成一个方法,供不同的程序进行调用。
2024-01-30 19:42:24
1009
1
原创 Java面向对象编程
1. 对象和类的关系:特殊到一般,具体到抽象。2. 类:我们叫做class。3. 对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。4. 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。5. 类是用于同一类型的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。6. 对象是Java程序的核心,在Java程序中“万事万物皆对象”。7. JDK提供了很多类供编程人员使用,编程人员也可以定义自己的类。
2024-01-27 15:20:38
1033
原创 Java数组
数组是一个变量,存储相同数据类型的一组数据。1.声明一个变量就是在内存空间划出一块合适的空间。2.声明一个数组就是在内存空间划出一串连续的空间。数组只用一个名称,即标识符。元素下标标明了元素在数组中的位置,从0开始。数组中的每个元素都可以通过下标来访问。数组长度固定不变,避免数组越界。一维数组入门数组的特点:长度固定,连续空间,存储同一种类型数据数组内存分配图for-each循环:简单、主要用于遍历操作一维数组的应用数组优点:按照索引查询效率高数组缺点:添加删除元素效率低。
2024-01-19 15:52:57
1027
1
原创 Java流程控制语句
if语句 单、双、多分支选择结构,等值、不等值判断即可。switch语句 只有多分支选择结构 只针对等值判断。while循环:先判断再循环,适合循环次数不固定的情况。do-while循环:先循环再判断,适合循环次数不固定的情况。for循环:适合循环次数固定的情况。break:跳出本层循环,跳出外层循环需要结合标签或符号位实现。continue:提前结束本次循环。return:结束当前方法。任何两种循环都可以相互嵌套。外层循环变量变化一次,内层循环变量变化一遍。
2023-11-28 19:14:06
251
1
原创 Java数据类型和运算符
ASCII英文字符集 1个字节ISO8859-1西欧字符集 1个字节BIG5台湾的大五码,表示繁体汉字 2个字节GB2312大陆使用最早、最广的简体中文字符集 2个字节GBKGB2312的扩展,可以表示繁体中文 2个字节GB18030最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符 2个字节Unicode国际通用字符集 2个字节=右侧:所有变量先转换为字节数最多的数据类型,再计算。
2023-10-25 19:56:59
262
1
原创 初识JAVA
编辑风格:1. 注意缩进!一定要有缩进。缩进就像人得体的衣着一样!2. 成对编程!括号、引号都应该写完后,再往里面加内容。3. 见名知意!最基本的要求!作用:注释就是程序员为读者作的说明,是提高程序可读性的一种手段。类型:// 单行注释 注释内容从//到本行结尾/ * * / 多行注释 / * * / 注释不能嵌套/ ** * / 文档注释 可以通过JDK提供的Javadoc命令,生成程序的API文档(面向对象编程时再讲)注意:注释不会出现在字节码文件中。
2023-10-05 16:57:02
90
原创 程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义//VS2019执行不了,表示其不遵循ANSI C这个标准,gcc遵循这些预定义符号都是语言内置的。int main()//写日志文件int i = 0;for (i = 0;i < 10;fclose(pf);
2023-09-13 16:01:55
159
1
原创 动态内存管理
这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数size为0,malloc的行为是标准未定义的,取决于编译器。C语言提供了另外一个函数freefree函数是用来释放动态开辟的内存。如果参数ptr指向的空间不是动态开辟的,那free。
2023-09-04 17:26:34
86
1
原创 自定义类型:结构体&枚举&联合
int x;int y;}p1;//声明类型的同时定义变量p1(全局变量)//定义结构体变量p2(全局变量)//在代码块内部定义(局部变量)//初始化:定义变量的同时赋初值struct Stu //类型声明//姓名int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的成员必须是int或signed int。位段的成员名后边有一个冒号和一个数字。//a占两个二进制位(2个比特位)
2023-08-27 15:58:34
97
原创 字符函数&字符串函数&内存操作函数
原因:因为strlen的返回类型是size_t,而size_t与unsigned int等价,所以两个无符号数相减得到的还是无符号数3-6的结果是无符号数3所以最后输出的结果是错误的。调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>
2023-08-25 16:07:22
112
1
原创 指针的进阶
int* pint;能够指向整形数据的指针。float* pf;能够指向浮点型数据的指针。故数组指针应该是:能够指向数组的指针。观察下列代码哪个是数组指针?p1先和[ ]结合,说明p1是一个数组,是存放了十个整形指针的指针数组。p2先和*结合,说明p2是一个指针变量,然后指针指向的是一个大小为10个整形的数组。所以p2是一个指针,指向一个数组,叫数组指针。注意:[ ]的优先级要高于号,所以必须加上()来保证p先于结合。
2023-08-22 18:47:36
87
1
原创 深度剖析数据在内存中的存储
基本的内置类型char // 字符数据类型short //短整型int //整形long //长整形long long //更长的整形float //单精度浮点型double //双精度浮点型类型的意义1.使用这个类型开辟内存空间的大小(大小决定了使用范围)。2.如何看待内存空间的视角。大端(字节序存储)模式。
2023-08-15 18:16:24
106
1
原创 第一篇博客
我现在是一名计算机科学与技术专业的一名学生,从小就是对编程挺感兴趣的,可是由于当时的环境因素对编程接触的比较少,一直到大学才开始正式接触编程。我个人对我自己的数学和思维能力是比较自信的,从小时候开始就特别喜欢钻研会从一些特别的角度去思考问题,包括遇到一些问题我都会绞尽脑汁的去把它弄明白。高考成绩对于我而言也不是特别的理想,学校也很差。
2023-08-15 18:16:01
73
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅