
学习总结
五点下班去撸铁
尿尿了
展开
-
使用lambda表达式出现Variable used in lambda expression should be final or effectively final
为什么要限制我们直接使用外部的局部变量呢?主要原因在于内存模型,我们都知道实例变量在堆上分配的,而局部变量在栈上进行分配,lambda 表达式运行在一个独立的线程中,局部变量也属于线程私有,如果肆意的允许 lambda 表达式引用局部变量,可能会存在局部变量以及所属的线程被回收,而 lambda 表达式所在的线程却无从知晓,这个时候去访问就会出现错误,之所以允许引用事实上的 final(没有被声明为 final,但是实际中不存在更改变量值的逻辑),是因为对于该变量操作的是变量副本(与匿名内部类原理一..原创 2021-02-22 10:49:14 · 1436 阅读 · 0 评论 -
mysql中char和varchar的区别
在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下选择俩者的理由。char的长度是不可变的,而varchar的长度是可变的首先明确的是,char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[1...原创 2020-03-15 09:42:54 · 237 阅读 · 0 评论 -
JDK与CGLIB动态代理构建过程及反向输出他们产生的代理Class文件验证代理对象
JDK动态代理:目标对象必须是某个接口的实现,通过在运行期间动态的创建(代理类)来完成对目标对象的代理接口:public interface Person { public void talk();}目标类:public class Student implements Person { @Override public void talk() { ...原创 2020-03-01 21:00:16 · 287 阅读 · 0 评论 -
JAVASE之循环
循环语句的分类while 循环do/while 循环for 循环循环中可以使用的关键字break;(结束循环,不会继续判断) int i=0,sum=0; while(true) { i++; sum+=i; if(sum>=5050) break; System.out.print(sum);输出结果为5050continu...原创 2018-10-02 10:50:55 · 198 阅读 · 0 评论 -
JAVASE之 数组
什么是数组?可以存储基本类型的数据和引用类型的数据,数组是一个集合,一个数组可以存储多个相同数据类型的数据数组的声明方式: type var[] 或 type[] var;例如:int a[];int[] a1;double b[];String []c; // Java语言中声明数组时不能指定其长度(数组中元素的数) 例如:int a[5]; //是错误的` ...原创 2018-10-04 18:55:01 · 208 阅读 · 0 评论 -
JAVASE之 java编程基础
1.关键字定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写(通俗的说就是在JAVA中有特殊含义的单词)例如:int,byte,short,enum,switch,return…2.标识符凡是可以起名的地方都是标识符(类名,变量,方法)起名规则:由26个英文字母大小写,数字0-9,_或$组成数字不可以开头不可以使用关键字和保留字,但...原创 2018-09-29 20:18:35 · 247 阅读 · 0 评论 -
JAVASE之条件语句之switch语句
switch语句结构:switch(表达式){ case 1: 语句; break;case2: 语句; break;default:语句;}使用switch的注意事项switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串(jdk1.7后);case子句中的值必须是常量,且所有case子句中...原创 2018-09-30 17:13:32 · 180 阅读 · 0 评论 -
JAVASE之移位运算符详解
java移位运算符不外乎就这三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。1、 左移运算符左移运算符<< 使指定值的所有位都左移规定的次数。1.它的通用格式如下所示:value << numnum2.运算规则按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。当左移的运算数...原创 2018-10-09 19:49:25 · 200 阅读 · 0 评论 -
JAVA经典算法之递归算法
什么是递归首先我们可以在非负整数集上定义一个函数f,它满足f(0)=0,f(x)=2*f(x-1)+x^2;从这个定义中我们可以看到f(1)=1,f(2)=6,f(3)=21;如同这样在方法体中直接或者间接调用自身的方法就叫做递归方法。public class CircleText {public static void main(String[] args) { System.out....原创 2018-10-10 19:26:35 · 373 阅读 · 0 评论