
Java基础
文章平均质量分 69
ChaoticNg
八股文颂唱者
展开
-
JAVA类之间方法的调用
注:调用方法——调用另一方法的方法被调用方法——被调用的方法一、静态方法调用其他方法:1. 静态方法调用非静态方法无论是否在同一类内,均需要通过对象调用//Test类package main;public class Test { public void IsSon1(){//非静态方法 System.out.println("java大爷,你成功调用了你非静态方法里的儿子1"); } public static void main(Stri...转载 2021-10-13 13:43:48 · 5964 阅读 · 1 评论 -
成员变量、局部变量、类变量
①在类中的位置不同成员变量:在类中方法外局部变量:在方法定义中或者方法声明上静态变量:在类中方法外。属于类,所以也称为为类变量②在内存中的位置不同成员变量:在堆内存(成员变量属于对象,对象进堆内存)局部变量:在栈内存(局部变量属于方法,方法进栈内存)静态变量:方法区的静态区③生命周期不同成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失静态变量:随着类的加载而加载,随着类的消失而消失④初始化值不同成原创 2021-09-29 19:20:28 · 1044 阅读 · 0 评论 -
servlet与@PostConstruct注解
首先要知道servlet就是一个Java接口。打开idea,ctrl + shift + n,搜索servlet,就可以看到是一个只有5个方法的interface!servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()和destroy(),还有一个处理请求的service(),也就是说,所有实现servlet接口的类,或者说,所有想要处理网络请求的类,都需要回答这三个问题:你初始化时要做什么 你销毁时要原创 2021-09-01 15:11:50 · 285 阅读 · 0 评论 -
Java基础--常见几种设计模式:单例模式,装饰模式,代理模式
双重校验锁的单例模式(饿汉式):class Singleton{ private volatile static Singleton s; private Singleton(){ } public static Singleton getS(){ if (s == null){ synchronized (Singl...原创 2020-02-29 20:05:01 · 176 阅读 · 0 评论 -
Java设计模式--装饰者模式
1. 接口2. 被装饰类继承接口3. 装饰类继承接口, 1)获取被装饰类的引用:Student s; 2)再构造方法中传入被装饰的对象: public Decotator(Student s){this.s = s} 3)重写接口方法,对功能进行升级好处:耦合性不强,被装饰类的变化与装饰类变化无关...原创 2019-03-01 17:35:57 · 150 阅读 · 0 评论 -
Java设计模式--JDBC案例以及Statement与PreparedStatement的区别
目录JDBC入门程序步骤:完整的JDBC工具类:statement的安全问题:使用PreparedStatement:总结:JDBC是SUN公司提供的一种连接数据库的规范,java主程序 <--> JDBC <--> mysql主要步骤为:注册驱动、建立连接、创建statement、执行sql、关闭流JDBC入门程序步骤:/...原创 2019-09-14 23:52:37 · 258 阅读 · 1 评论 -
Java设计模式--单例设计模式:饿汉式,懒汉式,双重校验锁方式
单例设计模式:保证类在内存中只有一个对象。如何保证类在内存中只有一个对象呢? (1)控制类的创建,不让其他类来创建本类的对象。private (2)在本类中定义一个本类的对象。Singleton s; (3)提供公共的访问方式。 public static Singleton getInstance(){return s}单...原创 2019-03-01 19:23:15 · 244 阅读 · 0 评论 -
Java设计模式--代理模式
代理模式是Java常见的设计模式之一。原创 2019-03-01 16:37:47 · 413 阅读 · 0 评论 -
Java设计模式--简单工厂模式
一、简单工厂模式一个栗子:我喜欢吃面条,抽象一个面条基类,(接口也可以),这是产品的抽象类。public abstract class INoodles { /** * 描述每种面条啥样的 */ public abstract void desc();}先来一份兰州拉面(具体的产品类):public class LzNoodles ex...原创 2019-03-01 18:53:20 · 235 阅读 · 0 评论 -
JDK1.8_HashMap为什么是不安全的
1.HashMap不安全造成的影响在JDK1.8中,在多线程环境下,会发生数据覆盖的情况。JDK1.8在进行元素插入时使用的是尾插法。2. HashMap的putVal()方法源码分析在JDK1.8中对HashMap进行了优化,在发生hash碰撞,不再采用头插法方式,而是直接插入链表尾部,因此不会出现环形链表的情况,但是在多线程的情况下仍然不安全,这里我们看JDK1.8中HashMap的put操作源码:** final V putVal(int hash, K key, V value,转载 2021-05-17 15:45:31 · 1373 阅读 · 0 评论 -
hashmap.put()解析(jdk1.7)
先上源码 public V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(threshold); //threshold--阈值,也就是容量*加载因子0.75,比如 16*0.75=12 } if (key == null) return putForNullKey(value); /原创 2021-03-26 16:40:30 · 228 阅读 · 0 评论 -
一篇搞定Java过滤器:Filter
目录引言(一) 过滤器概述(二) 第一个过滤器程序(三) filter配置第一种:web.xml配置第二种:使用注解配置(四) 过滤器的生命周期(五) Filter的应用(1) 登录权限验证(2) 敏感词过滤引言我们可以通过使用前面的技术,做出一些简单的登陆注册以及配合数据库实现对数据增删改查的Demo,程序是基本运行起来了,但是却存在着一个重大的安全问题,那就登陆权限验证,一般来说登陆的正确流程是这样的:用户在客户端发出请求 -> 后台判..原创 2021-03-10 15:05:12 · 426 阅读 · 0 评论 -
Java注解二:实现自定义注解
前言 上一篇文章介绍了注解的一些基本知识,这次来介绍下如何实现自定义注解及注解如何使用。正文注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。注解的基本元素声明一个注解要用到的东西修饰符访问修饰符必须为public,不写默认为pubic;关键字关键字为@interface;注......原创 2021-03-11 15:36:07 · 654 阅读 · 3 评论 -
Java 注解一:注解浅析
前言前段时间一直想了解下java的自定义注解,包括面试的时候也遇到过类似问题,今天总算有时间来学习下。正文注解(Annotation)概念注解是Java SE 5.0版本开始引入的概念,它是对java源代码的说明,是一种元数据(描述数据的数据)。注解和注释的不同注释注释是对代码的说明,给代码的读者看,便于帮读者梳理业务逻辑;注解注解也是对代码的说明,需要配合工具(解析它的代码)使用,参与代码的编译,给应用程序看的;为什么出现注解?在频繁...原创 2021-03-11 15:25:57 · 146 阅读 · 0 评论 -
java中的Class.forName()、newInstance()、new对比小结
(一)首先要明白在java中任何class都要装载在虚拟机上才能运行1、Class.forName()就是装载类用的(new是根据加载到内存中的类创建一个实例),如果给你一个包名和类名,可以通过Class.forName("package.A").newInstance()来实例化它,其效果和new A()是一样的。2、JVM在装载类的时候会执行类的静态代码段,静态代码是和class绑定的,class装载成功就表示执行了你的静态代码,而以后就不会再执行这段静态代码了。Class.forName()的原创 2021-03-11 14:45:07 · 556 阅读 · 0 评论 -
Java实现分页功能常见的几种方法
目录一、limit关键字二、hibernate分页三、截取List查询结果分页(简单粗暴)四、mybatis框架pageHelper插件分页五、springData分页一、limit关键字service层@Service@Transactionalpublic class ImplStudentService implements StudentService { @Resourceprivate StudentDao studentDao...原创 2021-03-04 15:47:54 · 12408 阅读 · 2 评论 -
pagehelper分页原理
public ServerResponse<PageInfo> getProductList(int pageNum,int pageSize){ //startPage--start //填充自己的sql查询逻辑 PageHelper.startPage(pageNum,pageSize); List<Product> productList = productMapper.selectList();...原创 2021-03-04 14:24:45 · 2170 阅读 · 1 评论 -
Java基础--collection容器
Map接口和Collection是平行关系,Map没有继承Collection接口Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用。 List接口继承了Collection接口,List接口允许存放重复的对象,排序方式为按照对象的插入顺序。 Set接口继承了Collection接口,Set接口不允许存放重复的对象,排序方式为按照自...原创 2019-04-02 16:47:40 · 331 阅读 · 0 评论 -
Java基础--JDBC,C3P0与DBCP
C3P0连接池与DBCP连接池:连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。这项技术能明显提高对数据库操作的性能。连接池的好处:(1)对于大多数应用程序,当它们正在处理事务时,仅需要能够访问JDBC连接的 1 个线程。当不处理事务时,这个连接就会闲置(造成资源的浪费)。相反,连接池允许闲置的连接被其它需要的线程使用。(2)当一个线程需要...原创 2019-07-14 23:00:24 · 404 阅读 · 0 评论 -
Java多态——“编译看左边,运行看右边“
"编译看左边,运行看右边"(多态执行)含义:Animal c = new Cat(); 左边是 Animal 类(或接口) 右边是 Cat()类; 在编译的时候编译器不管你右边是什么类,只要左边的Animal类(或接口)能编译通过就不会报错。但是运行的时候就要按照右边的Cat()类实际情况来运行。(对面向对象语言中理解多态、继承很有帮助~~~)老毕在讲到多态执行问题时,...原创 2019-06-21 11:33:03 · 4911 阅读 · 2 评论 -
搞懂Java反射
获取Class对象的三种方式1.1 通过Class类的静态方法:forName(String className)(常用) Class clazz = class.forName("类名")1.2 任何数据类型(包括基本数据类型)都有一个“静态”的class属性 class clazz = Person.class1.3 Object ——> getClass(...原创 2018-12-17 16:31:55 · 171 阅读 · 0 评论 -
Java基础--父类、子类、静态成员变量,静态代码块、构造函数的执行顺序
顺序是:父静态-->子静态-->父实例变量-->子实例变量-->父构造-->子构造,具体看代码/** * Created by wu on 2019/9/24. */public class Main { public static void main(String[] args) { father newSon = new ...原创 2019-09-24 23:43:20 · 332 阅读 · 1 评论 -
Java基础--Java笔记
java与javaccmd中,执行java命令与javac命令的区别:javac:是编译命令,将java源文件编译成.class字节码文件。例如:javac hello.java ,将生成hello.class文件(bin目录)java:是运行字节码文件;由java虚拟机对字节码进行解释和运行。例如:java helloJDK与JRE:JRE: Java Runt...原创 2018-09-05 20:07:52 · 203 阅读 · 0 评论