![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
夏沐_lk
这个作者很懒,什么都没留下…
展开
-
Spring 使用配置文件+反射机制+工厂模式模拟IOC解耦(单例)案例
使用配置文件+反射机制+工厂模式模拟IOC解耦(单例)案例(1)客户端:package com.njau.UI;import com.njau.Util.BeanFactory;import com.njau.service.AccountService;public class Client { public static void main(String[] args) { //AccountService accountService = new原创 2020-05-24 11:19:47 · 397 阅读 · 0 评论 -
Nginx nginx使用介绍
(1)Nginx安装目录下,conf文件夹中【nginx.conf】配置文件中重点配置的说明(2)静态资源部署将静态资源放置在nginx安装目录下,配置【请求资源的路径】为静态资源路径,配置【请求资源的名称】为待访问的页面,开启nginx即可。(3)使用不同端口模拟多台http服务器在【nginx.conf】的http域内,复制【server】段,粘贴后修改端口,即可实现,需要将【location】中的root和index进行修改,重启nginx即可测试。(4)反向代理配置案原创 2020-05-20 15:21:18 · 516 阅读 · 0 评论 -
java Fileter过滤器拦截资源的配置说明
案例:原创 2020-05-20 15:23:52 · 321 阅读 · 0 评论 -
java JDBCTemplate介绍及常用方法案例
1. JDBCTemplate介绍2. 使用 JDBCTemplate执行DML语句Javabean对象---Emp对象(1)案例1(2)案例2(3)案例32. 使用 JDBCTemplate执行DQL语句(1)案例1:(2)案例2(3)案例3(4)案例4...原创 2020-05-13 18:15:20 · 645 阅读 · 1 评论 -
MySQL JDBC工具类及CRUD工具类
1. JDBC工具类使用properties配置文件实现JDBC工具类1.1 properties配置文件driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/数据库名称username=rootpassword=1234561.2 JDBC工具类/** * JDBC工具类 * @Author: fangju * @Date: 2019/6/15 */public class JD转载 2020-05-12 20:23:26 · 504 阅读 · 0 评论 -
Java JDBC实现过程及各个对象详解
1. JDBC的实现过程//(1)导入驱动包//(2)注册驱动Class.forName("com.mysql.jdbc.Driver");//加载MySQL数据库的驱动//(3)获取数据库连接对象Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名称","数据库用户名","密码");//(4)定义sql语句String sql = "update 数据表 set 字段名 = '值'原创 2020-05-12 19:49:57 · 333 阅读 · 0 评论 -
Java 使用自定义注解替代配置文件案例(注解介绍)
import java.lang.reflect.Method;/** * 注解: * 1. JDK中预定义的一些注解 * @Override:检测被该注解标注的方法是否是继承自父类(接口)的 * @Deprecated:该注解标注的方法表示该方法已过时 * @SuppressWarnings:压制警告的注解,一般传递的参数为all,如:@SuppressWarnings("all") * * 2. 自定义注解 * 2.1 格式: * .原创 2020-05-10 22:33:39 · 892 阅读 · 0 评论 -
Java 反射机制案例(类加载器加载properties文件)
import java.io.InputStream;import java.lang.reflect.Method;import java.util.Properties;public class Demo02 { public static void main(String[] args) throws Exception { //创建properties对象 Properties pro = new Properties(); //通.原创 2020-05-10 16:22:10 · 676 阅读 · 0 评论 -
Java 反射机制之获取成员变量、构造器及成员方法介绍及案例
import java.lang.reflect.Field;/* 反射: (1) 获取Class类对象: Class class; (2) 获取成员变量 Field[] getFields();获取用public修饰的成员变量 Field getField(String name);获取用public修饰的指定方法名的成员变量 Field[] getDeclaredFields();获取.原创 2020-05-10 11:08:02 · 705 阅读 · 0 评论 -
Java 方法引用之super引用父类方法案例
(1)super引用父类方法public class Human extends Man { @Override public void sayHello() { System.out.println("我是Human"); } public void method(Greentable g){ g.green(); } public void show(){ //使用匿名内部类实现 met原创 2020-05-09 21:12:53 · 1136 阅读 · 0 评论 -
Java 方法引用之类名引用静态方法案例
(1)类名引用静态方法/* 通过类名引用静态成员方法 */public class StaticMethodDemo { public static int getAbs(int num, Calcable c){ return c.getABS(num); } public static void main(String[] args) { int abs = getAbs(-10, s -> Math.abs(s));原创 2020-05-09 21:02:24 · 999 阅读 · 1 评论 -
Java 方法引用之对象名引用成员方法案例
(1)对象名引用成员方法/** * 通过对象名引用成员方法 * 使用的前提是对象名已经存在,成员方法也是已经存在的 * 就可以使用对象名来引用成员方法 * */public class ObjMethodDemo { public static void printString(Printable p){ p.print("aaa"); } public static void main(String[] args) { //使用原创 2020-05-09 20:59:36 · 871 阅读 · 0 评论 -
Java 方法引用的介绍
(1)成员方法的介绍public class Demo { public static void printString(Printable p){ p.print("aaa"); } public static void main(String[] args) { //用于printString方法中传递的参数是一个函数式接口,所以可以使用Lambda表达式对参数进行传递 printString(s->System.o.原创 2020-05-09 20:23:16 · 185 阅读 · 0 评论 -
Java 常用函数式接口案例之Predicate接口
1.Predicate接口说明java.util.function.Predicate<T>接口作用:对某种数据类型的数据进行判断,结果返回一个booleanPredicate接口中包含了一个抽象方法 boolean test(T t);应用该方法对某种数据类型的数据进行判断,符合条件则返回true,不符合则返回false默认方法 (1)and();与运算,判断一个字符串中是否既含有a,又含有b; 源码: default Pre原创 2020-05-08 21:58:00 · 577 阅读 · 0 评论 -
Java 常用函数式接口案例之Consumer接口
案例1import java.util.function.Consumer;/** * java.util.function.Consumer<T>:该接口的作用与Supplier接口作用相反,将创建的参数消费(使用)掉。 * Consumer接口中包含了唯一一个抽象方法void accept(T t);消费一个指定泛型的数据 * * default Consumer<T> andThen(Consumer<? super T> after) { *原创 2020-05-08 19:26:26 · 1062 阅读 · 0 评论 -
Java 常用函数式接口案例之Supplier接口
案例1import java.util.function.Supplier;/** * 常用的函数式接口 * java.util.function.Supplier<T>:接口中仅包含一个无参的方法:T get();用来获取一个指定泛型参数的对象数据 * Supplier<T>接口被称为是一个生产型接口,指定接口的泛型是什么类型,那么接口中get方法获取的就是什么类型的数据 * */public class SupplierDemo { public s原创 2020-05-08 19:19:24 · 983 阅读 · 0 评论 -
Java 函数式编程案例(函数式接口作为参数和返回值)
1. 原日志代码public class Demo01Logger { //只有日志等级为1时,才会打印日志信息 public static void showLog(int level, String massage){ if(level==1){ System.out.println(massage); } ...原创 2020-05-08 16:10:01 · 3154 阅读 · 0 评论 -
Java 使用浏览器访问TCP服务端
(1)原理(2)实现public class uploadBSTCPServer { public static void main(String[] args) throws IOException { //创建服务器监听端口的ServerSocket ServerSocket ss = new ServerSocket(8080); ...原创 2020-05-08 14:05:17 · 857 阅读 · 0 评论 -
Java Tcp通信实现文件上传的过程及优化
(1)tcp客户端public class upTcpClient { public static void main(String[] args) throws IOException { //1.利用本地IO流绑定待上传文件 FileInputStream fis = new FileInputStream("c:\\1.jpg"); ...原创 2020-05-08 11:13:07 · 377 阅读 · 0 评论 -
Java 序列化集合(多个对象)案例
案例:public static void main(String[] args) throws Exception { //1.定义一个存储多个对象的集合 ArrayList<person> list = new ArrayList<>(); //2.存储多个对象 list.add(new person("AA",18)); ...原创 2020-05-06 22:23:21 · 688 阅读 · 0 评论 -
Java 序列化流的使用
1.ObjectOutputStream 对象的序列化流/*ObjectOutputStream对象的序列化流构造方法(1)ObjectOutputStream(OutputStream out);创建写入指定OutputStream的ObjectOutputStream对象特有的成员方法:void writeObject(Object obj);将指定对象写入ObjectOut...原创 2020-05-06 20:36:18 · 267 阅读 · 0 评论 -
Java 字节流、字符流和转换流之间的关系
1.字节流、字符流和转换流之间的关系(1)字节流:读取字节到内存或将字节写入硬盘文件中。(2)字符流:将字节转换为字符(读入)或将字符转换为字节(写出)。(3)转换流:将字节按照指定的编码格式转换为字符(读入),或将字符按照指定的编码格式转换为字节(写出),字节(字符)通向字符(字节)的桥梁。2.说明 上图中,硬盘中文件1.txt中有文字【你好】,如果编码格...原创 2020-05-06 16:45:53 · 978 阅读 · 0 评论 -
Java File类中FileFilter过滤器的使用方法
在File类中有两个和listFiles重载的方法,方法传递的参数就是过滤器,方法如下:1. 重载方法11.1 方法名称File[] listFiles(FileFilter filter)1.2 说明java.io.FileFilter接口是用于抽象路径名File的过滤器,其主要作用是过滤file文件,接口中只有唯一的抽象方法accept,如下:boolean acc...原创 2020-05-04 22:06:44 · 6558 阅读 · 0 评论 -
Java 递归案例
递归注意事项:(1)递归一定要有停止条件,否则会导致栈内存溢出(2)构造方法禁止递归案例1:递归求和//案例1:求和private static int sum(int num) { if (num==0){ return 0; } return num+sum(num-1);}案例2:递归求阶乘//案例2:计算阶乘priva...原创 2020-05-04 19:11:16 · 272 阅读 · 0 评论 -
Java Lambda表达式的使用及案例
1. Lambda表达式的标准格式: (1)一些参数 (2)一个箭头 (3)一段代码 格式: (参数列表)->{一些重写的代码}; 解释说明 ():接口中抽象方法的参数列表,没有参数就空着,有参数就写出参数,多个参数使用逗号分隔 ->:传递的意思,将参数列表传递给方法体 {}:重写接口的抽象方法体2. La...原创 2020-05-02 20:03:11 · 401 阅读 · 0 评论 -
Java 线程间通信案例(生产者和消费者)
(1)主函数/** * 生产者消费者模式: * 生产者判断state是否为true,若为true则表示有包子,生产者休眠,等待消费者拿到true的状态进行消费; * 若不为true说明现在没有包子,则生产包子,并将状态置为true,之后,将消费者唤醒。 * 消费者判断状态是否为false,若为false则说明没有包子,消费者睡眠,等待...原创 2020-05-02 17:10:09 · 330 阅读 · 0 评论 -
Java 子父类异常使用注意情况
/*子父类异常情况(1)如果父类抛出了异常,子类重写父类方法时,抛出和父亲相同的异常或者父类异常的子类或者不抛异常(2)父类方法没有抛出异常,子类重写父类方法时,也不可抛出异常,此时子类的异常需要使用try-catch处理,不可声明抛出 */public class Fu{ public void show01() throws NullPointerException{}...原创 2020-05-01 20:24:55 · 423 阅读 · 1 评论 -
Java throw和throws关键字的使用及区别
(1)throw关键字作用:可以使用throw关键字在指定的方法中抛出指定的异常使用格式:throw new Exception("异常产生的原因");注意:(1)throw关键字必须写在方法内部(2)throw关键字后边new的对象必须是Exception和Exception的子类(3)throw关键字抛出指定的异常对象,就必须处理这个异常对象 第一种处理方式:thr...原创 2020-05-01 18:42:24 · 3539 阅读 · 2 评论 -
Java 遍历HashMap的两种方式
(1)keySet方法:将HashMap中键返回并使用set集合存储。public Set<K> keySet()案例private static void show01() { Map<String, String> stringStringHashMap = new HashMap<>(); stringStr...原创 2020-04-30 16:29:23 · 237 阅读 · 0 评论 -
Java 可变参数的使用
可变参数:JDK1.5之后出现的新特性(1)使用前提: 当方法的参数列表数据类型已经确定,但是参数的格式不确定,就可以使用可变参数。(2)使用格式:定义方法时使用修饰符 返回值类型 方法名(数据类型 ... 变量名){ }(3)原理: 可变参数的底层是一个数组,根据传递参数个数的不同,创建不同长度的数组,来存储这些参数。 传递参数的个数,可以是0、1、2、....原创 2020-04-30 10:45:07 · 1093 阅读 · 0 评论 -
java HashSet集合存储元素的原理
原创 2020-04-30 10:15:46 · 381 阅读 · 0 评论 -
Java 泛型的使用案例
使用泛型的好处,以集合对象为例:(1)避免了类型转换,存储的是什么类型,取出什么类型即可(2)把运行时异常,提升到了编译时异常。弊端:泛型是什么类型,集合中就只能存储什么类型的数据。1. 定义一个含有泛型的类1.1 定义格式修饰符 class 类名<代表泛型的变量>{ }1.2 案例class ArrayList<E>{ publ...原创 2020-04-29 21:13:38 · 1322 阅读 · 0 评论 -
Java 内部类使用方法
如果一个事物的内部包含另一个事物,那么这就是一个类内部包含一个类,内部类可分为:成员内部类和局部内部类1.成员内部类1.1 定义格式:修饰符 class 外部类名称{ 修饰符 class 内部类名称{ // ..... } //.....}1.2 使用方法(1)间接方法:在外部类方法中使用内部类,在main函数中调用外部类方法,...原创 2020-04-28 10:19:37 · 636 阅读 · 0 评论 -
Java final关键字的使用规则
(1)修饰一个类,格式:public final class 类名称{ }含义:表示这个类不能有任何子类,即不能被继承。注意:final类中的所有方法都不能被覆盖重写。(2)修饰一个方法,格式:修饰符 final 返回值类型 方法名称(参数列表){}含义:该方法为最终方法,不能被覆盖重写。注意事项:对于类、方法而言,abstract和final关键字不能同时使用,因为抽象...原创 2020-04-27 22:22:01 · 334 阅读 · 0 评论 -
Java 多态特性下调用成员方法和成员变量的规则
面向对象的三大特性中的多态性实现的前提是:子类extends继承或implement实现父类多态格式:父类名称 对象名 = new 子类名称();接口名称 对象名 = new 实现类名称();1. 访问成员变量的两种方式下的不同规则(1)直接通过对象名称访问成员变量:看等号左边是哪个对象(子类或父类),则优先用哪个对象的成员变量,没有则向上找。(2)间接通过成员方法访问成员...原创 2020-04-27 19:48:20 · 1220 阅读 · 1 评论 -
Java JDK9中接口内容总结
java9中的接口内容总结:1.成员变量其实是常量,格式:public static final 数据类型 常量名称 = 数据值;注意:常量必须进行赋值,而且常量的值不可变2.接口中的抽象方法,格式:public abstract 返回值类型 方法名(参数列表);注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类3.从java8开始,接口里允许有默认方法,格式:...原创 2020-04-27 11:24:39 · 688 阅读 · 0 评论 -
IDEA idea常用快捷键
原创 2020-04-21 17:25:32 · 154 阅读 · 0 评论 -
关于线程局部变量(TLS)
Java平台的java.lang.ThreadLocal是TLS技术的一种实现 对于同一全局变量或者静态变量,每个线程访问的是都是相同的变量,多个线程同时访存同一全局变量或者静态变量时会导致冲突,尤其是多个线程同时需要修改这一变量时,通过TLS机制,为每一个使用该全局变量的线程都提供一个变量值的副本,每一个线程均可以独立地改变自己的副本,而不会和其它线程的副本冲突。但是每一个...原创 2018-12-29 10:11:40 · 1277 阅读 · 0 评论 -
未初始化数组的默认初始值
在日常编程编写过程中,有时会new一个数组对象,但是在未赋值的情况下,不同类型的数组,默认初始值也是不同的。如下所示:char[] ch = new char[3];//默认空格 int [] Int = new int[2];//默认0 String[] strings = new String[2];//默认nullByte x;//默认null...原创 2018-11-06 09:09:01 · 18411 阅读 · 1 评论 -
机器码和字节码的概念与区别
什么是机器码机器码机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据。通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过...转载 2018-10-02 11:58:20 · 10661 阅读 · 0 评论