Java基础
文章平均质量分 80
余生羁绊
梦想还是要有的,万一实现了呢。
展开
-
java中JDBC执行带有中文的sql语句时查询不到结果
在获取连接对象的时候,在url后面追加可以识别中文的标识 (?useUnicode=true&characterEncoding=utf8)在navicat中可以正常查询,但是在ide中查询不到结果。其中username为中文。原创 2023-11-12 23:19:31 · 206 阅读 · 0 评论 -
java--JDBC学习
目前我们操作数据库,只能通过命令行(cmd)或者图形工具Navicat来操作数据库.但是实际开发时配合页面数据对数据操作,如果还是使用命令行(cmd)或者图形工具Navicat来操作就很麻烦!JDBC就是另外一种操作数据库的方式.(Java操作数据库)JDBC: Java DataBase Connectivity Java 数据库连接JDBC的设计思想Mysql厂商提供了驱动包,如下(jar包)(jar包就是把java项目压缩打包)驱动包,就是MYSQL厂商提供一套JDBC规范的实现.原创 2023-11-12 20:51:43 · 169 阅读 · 0 评论 -
java学习--day25(反射)
Java可以将.java文件编译成.class文件,这个.calss文件中包含了原始文件中的所有的信息。为啥要获取一个类的字节码文件对象,因为我要获取字节码文件下面的 构造方法 方法 属性 等信息。.class文件会被类加载器加载到虚拟机中,可以通过.class文件获取原始类中的所有的信息。因为有了class对象才能找关于类的属性,方法 , 构造方法。Java反射是在动态的获取类, 类属性, 类方法, 类构造方法等内部一些类的信息。平常获取类 new 一个对象,现在可以通过反射来获取。原创 2023-10-10 22:49:12 · 158 阅读 · 0 评论 -
java学习--day24(stream流)
工厂的流水线:先造手机电池-》再造手机的主板-》造手机端额外壳-》一个成品。 终结方法:对流操作的时候,链式操作的时候一定是写在最后的。Collection接口下面的方法 streram(); 将list集合中姓张的名字元素过滤到新的集合中。根据集合获取流,将集合中的数据变成流的形式。流就是集合中的数据,方法对集合中进行操作的。1.基于接口和抽象类的匿名内部类的写法。4.final和finally的区别。Stream解决集合类库现有的弊端。count:统计流中的元素的个数。跳过前几个,取m面的数据。原创 2023-10-10 22:46:30 · 673 阅读 · 1 评论 -
java学习--day24(单例模式&序列化&Lambda表达式)
类 ObjectInputStream(反序列化) 和 ObjectOutputStream(序列化) 是高层次的数据流,它们包含反序列化和序列化对象的方法。总结:序列化能干嘛?将一个类对象信息(构造方法,属性,方法)可以写到本地一个文件中。上面的方法序列化一个对象,并将它发送到输出流。它的返回值为Object,因此,你需要将它转换成合适的数据类型。总结:序列化将对象的值存到本地磁盘的文件中以作备份。反序列化可以将本次磁盘序列化过的文件读取到实体类的对象中。将本地的文件信息(被序列化过的)写到一个对象中。原创 2023-10-10 22:36:02 · 575 阅读 · 0 评论 -
java学习--day23(线程池)
Executors.newFixedThreadPool:创建一个固定大小的线程池,可控制并发的线程数,超出的线程会在队列中等待。Executors.newCachedThreadPool:创建一个可缓存的线程池,若线程数超过处理所需,缓存一段时间后会回收,若线程数不够,则新建线程。Executors.newSingleThreadExecutor:创建单个线程数的线程池,它可以保证先进先出的执行顺序。原创 2023-10-09 23:21:56 · 206 阅读 · 0 评论 -
java学习--day23(线程)
新建两个线程:一个是等待线程线程里面的代码从上往下执行的,但是使用object.wait(),就这个方法一用,你的线程就阻塞了,就处于等待状态。意味着当前的代码到了wait方法以后的代码暂时不执行了另外一个是唤醒线程。唤醒线程中使用object.notify()方法,这个方法是专门唤醒刚才那个等待线程。让等待线程继续执行。原创 2023-10-09 23:15:45 · 33 阅读 · 0 评论 -
java学习--day22(进程&线程)
是独立的运行程序 比如咱们电脑软件,你启动起来以后,他就是一个进程。qq idea进程需要windows系统的分配。可以获取当前的系统的网卡,内存,显卡等 1.独立性 各个进程之间是相互的独立的互不影响 的。录屏软件和idea没有关系的 2.互斥性 每个软件系统都会分配一个独立端口号,如果启动一个软件以后他的端口号97。 如果再启动另外一个软件,另外一个软件如果端口也是97,这个程序就启动不了,端口被占用的脑海里面知道开启的软件就是一个进程 即可!!原创 2023-10-09 23:09:50 · 352 阅读 · 0 评论 -
java学习-day21(常用类)
我们可以清楚的看到String的字符串的连接效率是最低的,这一点对于大量字符串的拼接可以很明显的表示出来,所以说大量字符串的拼接最好不要选择String。3.StringBuffer和StringBuilder的默认初始容量是16,可以提前预估好字符串的长度,进一步减少扩容带来的额外开销。关于StringBuffer的代码相当简单是个人都会的,但是底层和面试问的东西比较深的所以你们下去一定看看一些东西。这些东西都是可以举一反三的!关于流,你只要听懂昨天讲的流,那么其他流都在不再话下,思路都是一样的!原创 2023-10-07 23:26:00 · 207 阅读 · 1 评论 -
java学习--day20(IO流)
字节流:可以处理 文本 图片 音频 视频字符流:只能处理文本。原创 2023-09-26 13:25:28 · 75 阅读 · 0 评论 -
java学习--day19(Map集合&File类)
是否是文件【常用】(txt、md之类,文件夹除外)boolean createNewFile();文件和文件夹(文件路径)的抽象表示,是专门来出来u磁盘上面的文件或者文件夹的。获取当前文件夹下面的所有的=文件。获取当前文件对象的上一级的目录。获取当前文件夹下面的所有文件的名字。之前都是手动创建,现在可以借助Java封装好的类创建文件夹和文件。获取文件或者文件夹的名字的。获取当前对象的路径的。原创 2023-09-24 16:34:28 · 88 阅读 · 0 评论 -
java学习--day17 (Set集合、toString&equals方法)
(hash码的值通常通过将对象的内部地址转换为整数来实现,但Java的编程语言不需要此实现技术。哈希码值:在Object类下面,将内存地址(十六进制的值)转为十进制的值,此时这个十进制的值就叫hash码。@` ”和对象的哈希码(内存地址)的无符号的十六进制表示。为啥String类下面的equals方法比较的是内容呢?返回对象的哈希码值。Object 类下面的方法比较是两个对象的地址。方法的通用合同,该方法规定相等的对象必须具有相等的哈希码。当父类的需求,满足不了子类的需求的时候要重写父类的方法。原创 2023-09-21 00:05:21 · 114 阅读 · 0 评论 -
Java学习--day16(集合)
/有参构造方法,对属性进行赋值return age;//在一个类中重写toString方法//将内存地址转为程序员能看懂的字符串// '}';// }Person person = new Person("老邢" , 78);原创 2023-09-20 08:47:16 · 75 阅读 · 0 评论 -
java学习--day15(泛型、集合)
2.数组封装的方法是比较少的,集合封装的方法是比较多的!Java给咱们封装了集合的类库,封装了很多!3.其他的包的下面的其他类不能使用私有化的成员属性和成员方法。总结:private修饰的成员变量和成员方法只能在本类中使用。2.同一个包下面其他类不能使用私有化的成员属性和成员方法。总结:其他包下面其他类不能使用,但是继承的子类可以使用的。 但是数组有一个不好的地方,数组预先定义容量!1.在本类中可以使用私有化的成员属性和成员方法。总结:默认的属性和方法只能在同一个包使用!原创 2023-09-20 08:33:02 · 74 阅读 · 0 评论 -
Java学习--day14(String类)
从指定的位置开始截取字符串到指定的位置结束。在字符串中用新的字符替换老的字符。判断是否是以指定的字符或者字符串结尾的。判断字符串的内容是否相等。获取指定的字符第一个出现索引下标。获取指定的字符最后一次出现索引下标。 1.方法的功能,这个方法是干啥的。原创 2023-09-20 08:29:37 · 54 阅读 · 0 评论 -
java学习--day13 (static关键字、异常)
Java给咱们提供了很多的异常对象,但是有的时候还是满足不了现实生活的需求,我自己造异常对象。继承Exception需求: 如果是单身 抛出一个异常 单身异常类System . out . println("请输入一个整数:");try {throw new Exception("输入的整数有误的。。。");System . out . println("优秀");System . out . println("良好");原创 2023-09-19 23:40:33 · 68 阅读 · 0 评论 -
java学习--day12 (多态)
父类的引用可以调用父类的所有成员方法,可以调用子类的重写父类的方法,但是不能调用子类独有的方法。将子类的对象赋值给了父类的引用。4.在开发中,一个方法的参数是父类的引用。但是真正传的值是子类的对象。用来判断对象的运行类型(=右边), 是否是xx类型或者xx类型的子类。 父类 父类引用 = new 子类();方法的重写和重载就是方法的多态的体现形式。Java有三大特性:封装 继承 多态。3.=左边是 =右边是子类的对象。多态: 父类引用指向子类的对象。本质就是:父类的引用指向子类对象。原创 2023-09-19 23:23:12 · 88 阅读 · 0 评论 -
java学习--day12(抽象类与接口作业)
利用接口做参数,写个计算器,能完成±*/运算。编写程序,求柱体的体积。原创 2023-09-19 23:06:04 · 159 阅读 · 0 评论 -
java学习--day11(抽象类、接口)
abstract修饰的类叫抽象类abstract修饰的方法叫抽象方法总结:abstract 只能修饰类和方法abstract class 类名{普通的方法;抽象方法;入门案例:先学会说声明出来一个抽象类//声明一个抽象类//在抽象类中可以写普通成员方法System.out.println("今天中午吃外卖。。。。。。");//定义一个抽象方法 是不完整的方法 没有方法体的//定义了咋用啊?抽象类创建不了对象的 咋解决?//解决方案: 再写一个普通类去继承抽象类即可。原创 2023-09-19 22:54:13 · 143 阅读 · 0 评论 -
java学习--day10 (继承)
重写目的:子类可以继承父类的非私有化的方法,但是有的 时候父类的需求满足不了子类的需求了,这个时候需要重写父类非私有的方法。 如果父类中有有参构造,但是没有无参构造。 关于构造方法:父类与子类的构造方法的形式保持一致。继承的意思,就是将父类的属性和方法拿到子类中去使用。 公开的和默认的成员方法,子类可以继承使用。 公开的和默认的属性,子类可以继承使用的。 先执行父类的构造,再执行子类的构造方法。 私有的成员变量,子类无法使用的。 私有的成员方法,子类无法使用的。原创 2023-09-19 22:36:47 · 116 阅读 · 0 评论 -
java学习--day9 (封装)
一个Pandas类,属性 name age weight height 要求私有话成员变量 书写set方法。只能在构造方法中调用构造方法,只能写在第一行。 对属性进行封装 对方法进行封装 对类进行封装 对项目进行封装。 this这个关键只能在方法(成员方法和构造方法)中使用。 2.在类中书写 set和get方法进行对属性的赋值和取值。在构造方法,在成员方法。在构造方法,在成员方法。 能不能在成员方法中调用构造方法? 1.只能在构造方法中去调用构造方法。原创 2023-09-19 22:15:10 · 110 阅读 · 0 评论 -
java学习--day8 (面向对象)
可以用来描述事物的特征和行为的。现在开始通过Dog类创建dog对象,可以创建多个的。一个类声明好以后,不使用它,它是一直存在,咱们可以借助于对象衍生出一个实体。对象:是一个具体的实体。在类的基础之上孵化出来的。构造方法的目的是为了初始化对象的,换句话说,可以对对象的属性进行赋值。构造代码块的目的也可以对咱们的对象进行初始化的。造出对象的目的是为了啥?就是执行属性的复制和方法的调用的。对象创建其实是依据构造方法创建的! 2.先执行的是构造代码块,再执行构造方法。定义在实体类中的大括号的后面,又叫属性。原创 2023-09-19 22:07:42 · 110 阅读 · 0 评论 -
java学习--day7 (数组练习、排序)
/需求:定义一个方法,找出int数组中,最小值的索引下标//2//minIndex目的是用来存储最小值的下标的i++) {/*** i=4 4<4 false 循环结束*/i++) {8这个数的下标/*** @param arr 是数组,原始数组 你要在整个数组中找出那个值* @param find 要找的值* @return 是返回的找到值的索引下标*/i++) {index = i;break;//终止。原创 2023-09-19 21:48:42 · 88 阅读 · 0 评论 -
java学习--day6(数组)
变量: 数据类型 变量名字 = 初始化的值;数组定义的语法格式:第一种定义方式:数据类型[] 数组变量名字 = {值1, 值2, 值3,......};或者数据类型 数组变量名字 []= {值1, 值2, 值3,......};数据类型[] 数组变量名字 = new 数据类型[容量];数据类型[] 数组变量名字 = new 数据类型[]{值1, 值2, 值3,.....};是第一种的简写情况//使用第一种方式声明数组//声明数组并赋值,这个数组里面存了三个值。原创 2023-09-19 21:35:28 · 101 阅读 · 0 评论 -
java学习--day5 (java中的方法、break/continue关键字)
无参无返回值的方法有参无返回值的方法无参有返回值的方法有参有返回值的方法。原创 2023-09-19 20:55:42 · 111 阅读 · 0 评论 -
java学习--day4 (三目运算符、while、for循环)
执行流程:当代码执行到while以后,会去判断while后面的布尔表达式,如果布尔表达式为true的话,会执行大括号后面的循环体这个代码。执行完以后,再次回到while关键,再去判断布尔表达式,如果布尔表达式为true的话,再次执行循环体。执行完以后,再次回到while关键,再次判断布尔表达式,直到布尔表达式为false的话,就结束循环,就不再执行循环体,也不会回到while关键字。再回到表达式2,如果为false。执行流程:代码 执行到do的时候,就会执行语句体,然后再判断while后面的布尔表达式。原创 2023-09-19 16:00:43 · 80 阅读 · 0 评论 -
java学习--day3 (运算符、if循环、switch-case结构)
首先判断if后面的表达式1,如果表达式1为true,就执行当前大括号里面的语句体1,后面的代码就直接跳过了。如果表达式1为false,不执行语句体1,接着判断表达式2,如果为true,执行语句体2,以此类推。如果表达式的结果为true的话,就会执行大括号里面的语句体,如果表达式结果为false的话,就不执行大括号里面的语句体。总结:就是在判断表达式,一旦表达式为true的话,就执行当前的语句体,为false,就不执行的。条件1和条件2只要有一个为false ,整体结果就为false。原创 2023-09-19 15:55:40 · 81 阅读 · 0 评论 -
java学习--day2 (常量、变量、数据类型、运算符)
3.采用大驼峰的命名规则,当一个类由两个单词组成的这两个单词的首字母要大写的。声明char类型的数据的时候,使用单引号声明。3.采用小驼峰命名规则,当一个变量由两个单词组成的时候,后面的单词要大写。 在真实的开发中,对接口,抽象类,类,变量,方法等会有一定命名规范。目的:将无意义的字符转为有意义的字符或者将有意义的字符转为无意义的字符。将10 赋值给变量a。 数据类型 变量的名字 = 初始化的值;2.以数字,字母,_,等命名,但是数字不能开头。2.以数字,字母,_,等组成,但是数字不能开头。原创 2023-09-19 15:50:00 · 86 阅读 · 0 评论 -
java学习--day1
自增自减 加(减)号在前,先自增后运算 否之相反。 整形: byte, int, short, long。 布尔: boolean (true, false) 变量是用来临时保存数据的,该数据是可以变化的数据。找到notepad++编码按钮 点击转为ANSI编码。dir 显示当前文件夹下面的所有的文件和文件夹。 浮点数: double, float。 全部大写: 常量 如 PI。 字符型: char。mkdir 创建文件夹的。原创 2023-09-19 15:35:09 · 45 阅读 · 0 评论