Java
文章平均质量分 58
菜鸟琪
下了决心要做的事
要保持不动声色却满心澎湃
展开
-
菜鸟学JAVA之——JDBC编程
JDBC基本知识一、引入Java想要连接到MySQL上,就需要MySQL提供的连接用的jar包,这个jar包就是JDBCSPI(Service Provider Interface)过程:是Java提供的一种接口创建与表达形式。Java负责提供一套统一的数据库连接过程和方法。比如Java操作MySQL连接去查询数据库的时候,调用的方法是find,但是Java操作Sybase数据库...原创 2020-03-23 17:13:56 · 439 阅读 · 0 评论 -
菜鸟学JAVA之——几种设计模式(单例、代理、工厂、建造者)
文章目录一、单例设计模式(SingIton)????1.饿汉式(线程安全)2.懒汉式(线程不安全)3.懒汉式(线程安全)二、代理模式(proxy)三、工厂模式(factory)四、建造者模式(builder)一、单例设计模式(SingIton)????1.饿汉式(线程安全)1.私有化类的构造器2.内部创建类的对象4.要求此对象也必须声明为静态的3.提供公共的静态的方法,返回类的对象publi...原创 2020-02-27 15:45:06 · 341 阅读 · 0 评论 -
菜鸟学JAVA之——网络编程(TCP、UDP)
网络网卡:计算机接入到网络的最关键的设备,是一个IO设备。(输入,将从互联网外部接受到的数据发给cpu。输出,cpu将数据发送给网卡,网卡发送到互联网目标地址。)路由器拨号到公网,连接子网和公网,IP协议,分配IP地址IP地址:当前网络的唯一标识通过公网来进行不同局域网的主机进行通讯,这时可以把公网看成服务器,每个主机看出客户端传输方式:协议:TCP(传输控制协议)、UDP(用户报文协...原创 2020-02-24 09:21:49 · 625 阅读 · 0 评论 -
菜鸟学JAVA之——类加载
类加载类加载器(ClassLoader)什么是类加载器?就是Java代码在运作,JVM在启动时,把类模板加载到内存去的工具首先,一个Java程序真正的执行过程应该是你去调用了Java这个命令,然后程序开始执行,而执行的过程中,JVM会将很多类(.class文件,或者.jar文件)加载到当前的程序内存当中。当你去写 类型 a = new 类型()时,类加载器就会把加载好的模板放到堆中申请...原创 2020-02-23 19:23:28 · 250 阅读 · 0 评论 -
菜鸟学JAVA之——反射
反射之前我们学到的是封装,而反射其实就是反封装的过程(解封)引入:首先我们知道,Java程序运行过程和编译出来的class是两套东西我们可不可以只有类没有对象?可以之前那我们学习的对象都是依托于类而存在的我们可不可以只有对象没有类?可以。想一想io传对象,别人创建好对象传给你,你得到了这个对象的二进制字节,可以把这个变成一个对象而存在,只是没有这个类型而已。定义:所谓反射就是指,在...原创 2020-02-23 19:22:06 · 516 阅读 · 0 评论 -
菜鸟学JAVA之——常用类(StringBuffer、StringBuilder、Comparable、Comparator等)
文章目录常用类字符串相关的类一、String类及常用方法二、StringBuffer、StringBuilderJDK 8 之前的日期时间API一、System静态方法二、Date类三、SimpleDateFormat类四、Calendar类(抽象类)JDK 8 中新日期时间API一、LocalDate、LocalTime、LacalDateTimeJava比较器一、Comparable接口二、C...原创 2020-02-23 11:29:49 · 337 阅读 · 0 评论 -
菜鸟学JAVA之——异常
异常异常分为错误(Error)与异常(Exception)一、异常体系结构java.lang.Throwablejava.lang.Error:一般不编写针对性的代码进行处理java.lang.Exception:可以进行异常的处理编译时异常(checked)(也称“受检异常”)IOExceptionClassNotFoundException运行时异常(uncheck...原创 2020-02-11 17:59:50 · 239 阅读 · 0 评论 -
菜鸟学JAVA之——多线程
时隔这么久,那个菜鸟又回来了文章目录多线程程序、进程、线程线程的创建和使用一、多线程的创建:方式一:继承于Thread类二、线程的常用方法三、例题:创建3个窗口买票,票数为100,使用继承Thread的方式四、多线程的创建:方式二:实现Runable接口五、例题:创建3个窗口买票,票数为100,使用实现Runnable的方式六、两种创建方式的对比线程的生命周期线程的同步解决线程安全问题的方式...原创 2020-02-07 15:02:58 · 465 阅读 · 0 评论 -
菜鸟学JAVA之——集合框架(三)(Map接口的实现类HashMap)
Map容器Map自己就是顶级接口,他并不是Collection的子接口。List的顶级接口是Collection,Collection上面还有一个接口Iterable。list、set放置内容的时候,使用的都是单一一个泛型来确定放置的内容的类型是什么Map的一些方法确认是否有键值containsKey,确认是否有值containsValue,确实是否为空isEmpty,长度size,放置内...原创 2019-12-22 15:08:56 · 210 阅读 · 0 评论 -
菜鸟学JAVA之——集合框架(二)(Set接口的实现类HashSet、LinkedHashSet、TreeSet)
Set接口如果有人告诉你Set是无序的,那你可以直接回怼他这是错的,说法不严谨。Set接口的实现类(都不能放重复值) 1.HashSet(无序) 2.LinkedHashSet(有序) 3.TreeSet(有序)没有ArraySet,这是因为Array是连续的,Set是不连续的;Set与List的相同点,也是Collection的子接口,也是容器Set才叫真...原创 2019-12-19 12:59:39 · 351 阅读 · 0 评论 -
菜鸟学JAVA之——ArrayList源码解读(易懂)
ArrayList源码解读ArrayList底层是数组实现的首先了解几个必要的成员变量public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private ...原创 2019-12-19 11:50:58 · 216 阅读 · 0 评论 -
菜鸟学JAVA之——集合框架(一)(List接口的实现类ArrayList)
集合框架接下来将要学习的内容为:1.Collection接口(线性存储) a)List接口(有序(指有下标/索引)、数据可重复) b)Set接口(无序,数据不可重复) c)queue队列2.Map接口(键(key)-值(value)对存储)(映射关系)首先了解一个设计模式:适配者模式(通俗的理解是功能基本不变,只是改了方法名)(最主要的功能就是将一个接口转换为另一个接口)...原创 2019-12-14 21:56:46 · 387 阅读 · 1 评论 -
菜鸟学JAVA之——数据结构,单链表实现、泛型(部分)
一、数据结构,单链表的实现(这里实现了增、删、查功能)public class Node { private String content; private Node next; //用以指向下一节点 public String getContent() { return content; } public void setCont...原创 2019-12-08 20:36:32 · 317 阅读 · 0 评论 -
菜鸟学JAVA之——Object的toString、equals和hashCode方法,instanceof关键字
文章目录instanceofObject1.toString()方法2.equals()方法3.hashCode()方法instanceof格式对象 instanceof 类型:判断这个对象是不是这个类型的对象,如果是,输出true System.out.println(A instanceof B);其中A为一个对象,B表示一个类或者一个接口,当 A为B的对象,或者是其直接或间接子类...原创 2019-12-07 18:30:10 · 299 阅读 · 1 评论 -
菜鸟学JAVA之——小练习(生成电子签名)
自己生成电子签名你是否还在为同学白瞟你的实验报告而烦恼呢,你是否还在为别人copy你的代码而忧愁呢。下面教你一个方法,生成自己名字的电子标签(完全是之前学过的内容,相当于是一个小回顾吧)第一步,先生成自己名字的字节码public class Test { public static void main(String[] args) { String str = "张澳...原创 2019-12-07 14:20:34 · 1338 阅读 · 0 评论 -
菜鸟学JAVA之——接口(interface)
接口(interface)引入:接口是大家一起约定俗成的对一个对于类型的规范(仅仅是一套规范),抽象类存在的意义是被继承,它是一个模板,它里面也可以包含方法体被实现的方法(普通方法),这时如果子类继承了抽象类,忘了重写这个普通方法,但是他要用的是被重写的方法,这时虽然说代码编译不会出错,但是逻辑上出错了。这就是抽象类的不好的地方,另一个不好的是抽象类是类的范畴,它也是只能单继承,不能实现多继承...原创 2019-12-04 21:55:18 · 760 阅读 · 0 评论 -
菜鸟学JAVA之——方法的重载
方法的重载重载与重写不一样,重写是发生在继承里的,子类中用一个与父类中的同名方法把父类中的方法覆盖掉的过程。而重载是方法名一样,但参数不一样。(比如系统的println方法就是一个重载方法,自己可以看一下源码)方法的出口是他的返回值,入口是他的参数,根据参数类型,个数,顺序的不同来走不同的方法重载的条件1.参数类型不同2.参数个数不一样3.参数顺序不同类型不同public clas...原创 2019-12-01 20:07:51 · 151 阅读 · 0 评论 -
菜鸟学JAVA之——内部类
内部类内部类:定义在一个类里面的类。一般的内部类包括:成员内部类、局部内部类、匿名内部类和静态内部类 ,下面我们说一下成员内部类和静态内部类一、成员内部类成员内部类是最普通的内部类,定义在一个类的里面,代码如下public class TestInnerClass { private int f = 1; //内部类 public class InnerClass {...原创 2019-12-01 19:20:33 · 227 阅读 · 0 评论 -
菜鸟学JAVA之——final、abstract关键字、抽象类、匿名类
finalfianl可修饰成员变量,局部变量,形参,类,方法static可修饰属性,方法,类,静态代码块被final修饰后的标识符叫做常量(常量一般用大写字母表示),且内存地址不能再变了被fianl修饰后必须赋初值,且只有一次机会public final int a = 12;public final StringBuilder sb = new StringBuilder();s...原创 2019-11-27 00:36:03 · 261 阅读 · 2 评论 -
菜鸟学JAVA之——static静态代码块
静态代码块static可以修饰属性、方法、内部类、代码块静态代码块在类加载时就调用, 而且只执行一次, 并且优先于各种代码块以及构造函数。有一个地方的静态代码被使用,那么所有的静态代码块都会被调用下面通过实例理解一下父类public class Human { static { System.out.println("2.父类中的静态代码块"); } ...原创 2019-11-26 00:06:22 · 1295 阅读 · 16 评论 -
菜鸟学JAVA之——继承
继承Java中, 类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。继承关键字:extends意为扩展,继承就是子类对父类在原有基础上的扩展A继承了B,那么A就包含了B中的所有的属性和方法下面用代码实现了解一下继承父类public class Animal { String color; public String type;...原创 2019-11-19 19:47:00 · 266 阅读 · 0 评论 -
菜鸟学JAVA之——static关键字(静态属性和动态属性的区别)
为什么static不用创建对象就可以被调用?在未创建对象之前,所有静态属性或方法都放在元数据区里,静态的可通过类名调用public class Cat{ public static String name;//静态的,不创建对象都存在 public String color; //动态的,不创建猫的对象不存在这个属性}public class Main{ publ...原创 2019-11-15 20:56:30 · 1995 阅读 · 0 评论 -
菜鸟学JAVA之——包、访问控制符
一、包 packageJava对创建在工程中的类按照包的概念来管理包名命名规则:一般将域名反转过来作为包名的一部分,没有自己域名就用自己名字或者特征创建一个 。eg: package edu.yau.testpackage放在有效代码行的第一行同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。有两个...原创 2019-11-15 18:32:54 · 375 阅读 · 2 评论 -
菜鸟学JAVA之——String、StringBuffer及 基础数据类型的对象类型
一、StringString:是一个字符的容器,既然是一个容器 ,他一定符合容器的基本操作:求长,定位,替换String的两种创建对象的方式String str = "zhangaoqi";String str1 = new String("zhangaoqi");内存实现:这两个创建的str不一样,不是同一个对象public class Test{ public sta...原创 2019-11-12 21:49:19 · 564 阅读 · 0 评论 -
菜鸟学JAVA之——类、对象、方法
类、对象 万事万物皆对象抽象:提取关键特征形成模板类:所有相似对象,关键特征的集合很多个对象中具有相同的属性和方法时,我们就可以将其抽象成类类中定义的属性不需要赋初值;不同的场景对象抽象出的特征不一样行为(方法):一系列动作的集合,参数是方法的条件 ,结束的动作是得到一个结果面向过程与面向对象的区别:面向过程面对过程编程,需要把过程描述的很详细...原创 2019-11-08 21:26:11 · 283 阅读 · 0 评论 -
菜鸟学JAVA之——方法的定义和使用及部分String方法
方法(把相同相似的过程包裹起来)格式:访问控制 [static] 返回值类型 方法名 ( 参数列表 ) {方法体[return[返回值];]}public static int[] sort(int[] args){//方法体return args;}引入假设现在需要给两个数组进行排序import java.util.*;public class Sort{ ...原创 2019-11-05 17:01:08 · 206 阅读 · 0 评论 -
菜鸟学JAVA之——插入排序
插入排序首先模拟一个场景便于理解:有5个人需要按从小到大的身高依次排序。首先,第二个人与他前面的那个人比较,如果他比前面的那个人低,那么两人互换位置,否则不换,这两个人就排好了序。然后第三个人与第二个人比较身高,如果三号同学比二号同学低,那么三号与二号换位置,然后三号在与一号比,低的向前站,否则(第三个人比第二个人高),位置不变,继续排第四个人,这时,前三个人的顺序就排好了,接下来一次按照这个...原创 2019-11-03 19:24:35 · 368 阅读 · 0 评论 -
菜鸟学JAVA之—— 基本排序算法(直接排序,选择排序,冒泡排序)
一、 直接排序思路:首先需要两个嵌套的for循环,外层for循环控制轮数;内层for循环控制每轮比较的次数。这里来演示一下遍历的过程:第一轮:首先让i指向数组的首部,让j指向i的后一个元素,两者比较,2比1大,所以交换2跟1的位置,然后j后移依次这样排完一轮的结果为:第二轮:让i后移,j指向i的后一位,继续重复第一轮的过程。第三轮:一直重复就可以排序完成了。代码实现...原创 2019-11-01 23:41:53 · 337 阅读 · 0 评论 -
菜鸟学JAVA之——数组的声明与使用
数组一、一维数组的声明与初始化要点:数组一旦被创建,它的大小将不能被改变同一数组的数据类型必须是相同的创建一个数组必须指定其长度数组的静态初始化int arrays[] = new int[]{1,2,3,4,5,6} //方式1int arrays[] = {1,2,3,4,5,6} //方式2int arrays[] = new int[6]{1,...原创 2019-11-01 16:42:45 · 256 阅读 · 0 评论 -
菜鸟学JAVA之——流程控制语句(if、switch、for、while语句)
JAVA流程控制语句一、选择语句1. if语句格式if(布尔表达式){ 表达式为真执行的代码块;}示例public class Test{ public static void main(String[] args){ boolean foo = true; if(foo){ System.out.print("A"); System.out.prin...原创 2019-11-01 15:50:36 · 287 阅读 · 0 评论 -
菜鸟学JAVA之——运算符及其优先级
运算符算术运算符(+、-、、/、 %、++、–、+=、-=、=、/=、%=)int a =7/4; //向数轴的中间取整(直接砍掉小数部分,保留整数部分),得1int b = -7/2; //得-3//低类型转向高类型,直接转,高类型向低类型转(或者不同类之间转)需要类型强制转换a = b++; //先把b赋给a,然后b在++;a = ++b; //b先...原创 2019-10-31 23:16:27 · 292 阅读 · 0 评论 -
菜鸟学JAVA之——基本数据类型
JAVA数据类型的四类八种先说一下变量声明的格式:类型 标识符 赋值符号 常量值(eg:int a = 3)注意:java语言中局部变量未赋初值之前不允许使用(局部变量是在方法块里的,方法块是在内存方法区里的,方法区的内存是跟着方法一起开辟的,如果不赋初值则它不会占内存,所以不能用),如果局部变量未赋初值使用,则编辑时会报错,但全局变量未赋值之前可以使用,默认为0一、整型byte ,占一...原创 2019-10-31 22:56:33 · 642 阅读 · 2 评论 -
菜鸟学JAVA之——前言
一、硬件一个电脑的核心是CPU,CPU看上去很大,其实只有很小的一片才是CPU,其他都是散热片。主板:主板上有一个能承载CPU的管脚孔,每个管脚孔里有两个管脚,一个供电管脚,一个接地管脚CPU里面也有存储单元,但是很小,所以需要一个内存(内存是对CPU的存储单元的扩充)。存储单元(内存):RAM/ROM 断电即消失(临时数据)储存单元(外存/硬盘):断电不消失(持久化)CPU速度现...原创 2019-10-31 21:38:51 · 187 阅读 · 1 评论 -
菜鸟学JAVA之——JDK的安装与环境变量配置
菜鸟学JAVA之——JDK的安装与环境变量配置一、下载JDKJDK下载官网进入官网后,我们这里下载Windows(64位)。二、安装JDK(记住安装路径,一般安装在C盘下)等待加载完成后这时JDK就安装成功了!三、环境变量配置选中此电脑右击>>属性>>高级系统设置>>环境变量然后在系统变量中找到Path,点击编辑。在这里可以看到第一行...原创 2019-10-30 16:06:59 · 978 阅读 · 1 评论