02.变量_数据类型转换_运算符

Vue3多级路由缓存失效的深度解析与实战解决方案 本文深度解析了Vue3项目中多级路由嵌套下keep-alive缓存失效的根本原因,并提供了三种实战解决方案。通过剖析组件树、router-view与keep-alive的协作机制,揭示了缓存无法穿透多层router-view的技术本质。文章对比了路由扁平化重构、状态管理配合路由守卫以及使用社区插件等方案的优缺点与适用场景,为开发者解决这一常见难题提供了清晰的选型指导。 阅读详情

第一章.常量

1.概述:在代码运行的过程中,值不会发生改变的数据,我们跟这种常量叫做"字面值"
2.分类:
  a.整数常量:所有整数
  b.小数常量:所有带小数点的  -> 2.5   2.0
  c.字符常量:带单引号的 -> 单引号中必须有且只能有一个内容  -> 'a'   '啊'  '11'(不是)  ' '
  d.字符串常量:带双引号的 -> 双引号中有没有内容都可以   ""
  e.布尔常量:true false
  f.空常量:null  代表数据不存在,不能直接使用,null是为引用类型初始化的
public class Demo01ChangLiang {
    public static void main(String[] args) {
        //整数常量
        System.out.println(10);
        //小数常量
        System.out.println(10.5);
        //字符常量
        System.out.println('a');
        //字符串常量
        System.out.println("hello world");
        //布尔常量
        System.out.println(true);
        System.out.println(false);
        //空常量
        //System.out.println(null);
    }
}
public class Demo02ChangLiang {
    public static void main(String[] args) {
        System.out.println(10+3);//13
        System.out.println(10-3);//7
        System.out.println(10*3);//30

        /*
           /前后如果都是整数,结果只取整数部分
           /前后只要有一个是小数,结果就是正常小数
         */
        System.out.println(10/3);//3
        System.out.println(10/3.0);//3.3333333333333335
    }
}

第二章.变量

数据类型关键字内存占用取值范围
字节型byte1个字节-128 至 127 定义byte变量时超出范围,废了
短整型short2个字节-32768 至 32767
整型int(默认)4个字节-231 至 231-1 正负21个亿
-2147483648——2147483647
长整型long8个字节-263 至 263-1 19位数字
单精度浮点数float4个字节1.4013E-45 至 3.4028E+38
双精度浮点数double(默认)8个字节4.9E-324 至 1.7977E+308
字符型char2个字节0 至 216-1
布尔类型boolean1个字节true,false(可以做判断条件使用)

实际开发中,常用:

整数: int long

小数: float double

布尔: true false

1.变量的介绍以及使用

1.在代码的运行过程中,值会随着不同的情况发生改变的数据
  比如double price = 2.5   -> price = price*0.8
2.作用:临时存储一个数据
  什么时候想操作这个数据了,直接用变量名即可
3.定义格式:
  数据类型 变量名 = 值   -> 将等号右边的值赋值给等号左边的变量
                         有等号必须先看等号右边的,哪怕等号右边有运算,我们都要先算出最终结果,再将结果赋值给等号左边的变量
      
  数据类型 变量名1 = 值,变量名2 = 值...   -> 一次性定义多个相同类型的变量
      
4.数据类型:
  java中的数据类型:
    基本类型:4类8种
          整型:  byte short int long
          浮点型: float double 
          字符型: char
          布尔型: boolean
    引用类型:
          类 数组 接口 枚举 注解 Record
              
5.注意:
  a.String不属于基本类型,属于引用类型,但是定义格式和基本类型一样
  b.整数默认类型int;小数默认类型double
      
6.从取值范围给基本类型从小到大排序: byte,short,char  -> int -> long -> float -> double      
public class Demo01Var {
    public static void main(String[] args) {
        //整数
        int num1 = 10;
        num1 = 20;
        System.out.println(num1);
        //long型 -> 定义long型的变量,值后面加L或者l
        long num2 = 10L;

        //float 型 -> 定义float型的变量,值后面加F或者f
        float num3 = 10.5F;
        System.out.println(num3);
        //double型 -> 定义double型的变量
        double num4 = 10.5;
        System.out.println(num4);

        //char
        char num5 = 'a';
        System.out.println(num5);

        //boolean
        boolean num6 = true;
        boolean num7 = false;
        /*
          将num7代表的false赋值给了变量num6
          所以num6变成了false
         */
        num6 = num7;
        System.out.println(num6);

        //字符串->引用类型->字符串类型用String表示
        String s = "abc";
        System.out.println(s);
    }
}

public class Demo02Var {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        /*
          /前后都是整数, 结果是整数
          /前后如果有一个为小数, 结果是小数
         */
        System.out.println(a / b);

        System.out.println("==================");

        /*
          从复用性上来看,将结果单独赋值给一个变量比较好
          比如:因为后面啥时候想使用a+b的结果,直接用add就行了
          没必要重新算一遍了
         */
        int add = a+b;
        System.out.println(add);
        int sub = a-b;
        System.out.println(sub);
        int mul = a*b;
        System.out.println(mul);
        int div = a/b;
        System.out.println(div);
    }
}

public class Demo03Var {
    public static void main(String[] args) {
       /*
          \:代表的是转义字符

          a.可以将具有特殊含义的字符转成普通字符
          b.可以将普通字符转成具有特殊含义的字符
        */

        /*
           n:本身普通字符
           \n:换行符
         */
        System.out.println("hello\nworld");

        /*
           t:本身是普通字符
           \t:制表符,相当于tab键
         */
        System.out.println("hello\tworld");

        /*
           \:本身具有特殊含义
           \\:前面的\将后面的\转义了,此时后面的\就变成普通的字符了
         */
        //用字符串表示一个路径
        String path = "F:\\idea\\io";
        System.out.println(path);
    }
}

public class Demo04Var {
    public static void main(String[] args) {
       var i = 10;
       System.out.println(i);
    }
}

2.变量使用时的注意事项

1.变量不初始化(第一次赋值)不能直接使用
2.在同一个作用域(一对大括号就是一个作用域)中,不能定义重名的变量 
3.不用的作用域之间不要随意互相访问
  a.在小作用域中能使用大作用域中的内容
  b.在大作用域中不能直接使用小作用域中的内容
public class Demo05Var {
    public static void main(String[] args) {
        int i = 10;
        System.out.println(i);

        //int i = 20;  只要变量名前面确定类型,就是定义
        i = 20;//二次赋值,不是重新定义
        System.out.println(i);

        {
            int j = 100;
            System.out.println(j);
            System.out.println(i);
        }
        //System.out.println(j);
    }
}

第三章.标识符

1.概述:就是给类,方法,变量取的名字
2.硬性规定:
     a.不能以数字开头,不能是关键字
     b.名字中可以包含数字,_,$,字母,但是不要数字开头
  软性建议
     a.给类取名字:大驼峰式(每个单词首字母大写)
     b.给方法,变量取名字:小驼峰(从第二个单词开始首字母大写)

第四章.数据类型转换

1.什么时候发生:
  a.等号左右两边类型不一致
  b.大类型和小类型做运算
2.什么叫大类型,什么叫小类型
  两个类型相遇了,取值范围大的就叫做大类型,取值范围小的就叫做小类型 -> 相对的
3.分类:
  自动类型转换
  强制类型转换(强转)

按照取值范围从小到大排列: byte short char -> int -> long -> float -> double

1.自动类型转换->小转大

1.情况1:  取值范围大的类型 变量名 = 取值范围小的类型  -> 小类型自动提升为大类型
2.情况2:  取值范围大的类型和取值范围小的类型数据做运算  -> 小类型自动提升为大类型
public class Demo01DataType {
    public static void main(String[] args) {
        /*
          等号右边的100是整数,整数默认类型int
          等号左边num1是long型
          将int型的数据给long型的变量,相当于将取值范围小的类型给取值范围大的变量
          发生了自动类型转换
         */
        //long num1 = 100;
        long num1 = 100L;
        System.out.println(num1);

        /*
         等号右边的10是整数,整数默认类型int
         等号左边num2是double型
         将int型数据给double型变量,相当于将取值范围小的类型给取值范围大的变量
         发生了自动类型转换
         */
        double num2 = 10;
        System.out.println(num2);


        double a = 10.0;
        int b = 10;

        /*
          大类型和小类型做运算了
          小类型会自动提升为大类型
          double+int  -> double+double
         */
        double sum = a+b;
        System.out.println(sum);

    }
}

2.强制类型转换_大转小

1.情况1:取值范围小的类型 变量名 = 取值范围大的类型   -> 报错
2.怎么强转:
  取值范围小的类型 变量名 = (取值范围小的类型)取值范围大的类型
public class Demo02DataType {
    public static void main(String[] args) {
        /*
          等号右边是小数,小数默认类型double
          等号左边i是int型
          将double型的数据赋值给int型的数据,相当于将取值范围大的类型赋值给取值范围小的类型
          需要强转
         */
         //int i = 2.5;
         int i = (int) 2.5;
         System.out.println(i);

        /*
           等号右边是小数,小数默认类型为double
           等号左边j是float型
           将double型数据赋值给float型数据,相当于将取值范围大的类型赋值给取值范围小的类型
           需要强转
         */
         //float j = 2.5;
         float j = (float)2.5;
         System.out.println(j);
    }
}

3.强转的注意事项

1.不要随意写成强转形式,除非没有办法,否则会出现精度损失,数据溢出现象
2.byte和short如果等号右边是字面值,不超范围,不需要我们自己手动强转,jvm帮我们自动强转了
  byte和short的变量如果等号右边有变量参与运算,byte和short会自动提升为int型,如果最终结果重新赋值给byte或者short的变量,需要我们自己手动强转  
3.char类型如果做运算,会自动提升为int,会去ASCII码表中找这个字符对应的int值,如果ASCII码表中没有,去自动去unicode码表(万国码)中查找字符对应的int值     
public class Demo03DataType {
    public static void main(String[] args) {
        //精度损失
        int a = (int) 2.9;
        System.out.println(a);

        /*
          数据溢出

          int用32位二进制表示
          100亿:36位二进制
         */
        int b = (int)10000000000L;
        System.out.println(b);//1410065408

        System.out.println("======================");

        byte num1 = 100;
        System.out.println(num1);

        /*
           byte = byte+int  -> int+int
         */
        byte result = (byte)(num1+1);
        System.out.println(result);

        System.out.println("===================");
        char c = 'a';
        System.out.println(c+0);
        System.out.println('中'+0);
    }
}

第五章.运算符

1.算数运算符

符号说明
+加法
-减法
*乘法
/除法
%(模)取余
public class Demo01SuanShu {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;
        
        int add = a+b;
        System.out.println(add);
        int sub = a-b;
        System.out.println(sub);
        int mul = a*b;
        System.out.println(mul);
        int div = a/b;
        System.out.println(div);
        int mod = a%b;
        System.out.println(mod);
    }
}
+:
  加法
  字符拼接-> 任意类型遇到字符串都会变成字符串
public class Demo02SuanShu {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        System.out.println(""+a+b);
        System.out.println(a+b+"");

        int add = a+b;
        System.out.println("a与b的和为:"+add);
        System.out.println("add = " + add);

    }
}

2.自增自减运算符(也算算数运算符的一种)

1.格式:
  变量++:后自加
  ++变量:前自加
  变量--:后自减
  --变量:前自减
2.++ -- 每次只+ - 1
3.分类:
 单独使用:++ -- 自己单独成为一句,没有和别的语句掺和使用
        符号在前在后都是先运算
 混合使用:++ -- 和其他语句混合使用
        符号在前:先运算,再使用运算后的值
        符号在后:先使用原值,完事之后再加减
public class Demo03SuanShu {
    public static void main(String[] args) {
        //单独使用
        int i = 10;
        i++;
        System.out.println(i);

        //混合使用
        int j = 10;
        //int result = ++j;
        int result = j++;
        System.out.println(result);
        System.out.println(j);

        System.out.println("==================");
        int c = 10;
        c = c++;
        System.out.println(c);
        System.out.println(c);
    }
}

在实际开发过程中,我们用的都是单独使用

3.赋值运算符

1.基本赋值运算符
  =
    
2.复合赋值运算符
  +=
     int i = 10;
     i+=1;   -> i = i+1
  -=
  *=
  /=
  %=  
         
3.注意:
  针对于byte,short参与复合赋值运算符运算,jvm会自动转型
public class Demo04FuZhi {
    public static void main(String[] args) {
        int i = 10;
        i+=10;//i = i+10
        System.out.println(i);

        i/=3;
        System.out.println(i);

        i%=3;
        System.out.println(i);

        System.out.println("=================");
        byte b = 10;
        b+=1;//b = b+1
        //b = b+1;
        System.out.println(b);
    }
}

4.关系运算符(比较运算符)

1.结果:boolean类型的结果 -> true -> false
2.作用:做判断条件使用    
符号说明
==判断符号前后结果是否相等,如果相等为true;否则为false
>判断符号前的数据是否大于符号后的数据,如果大于为true;否则为false
<判断符号前的数据是否小于符号后的数据,如果小于为true;否则为false
>=判断符号前的数据是否大于或者等于符号后的数据,如果大于或者等于为true;否则为false
<=判断符号前的数据是否小于或者等于符号后的数据,如果小于或者等于为true;否则为false
!=判断符号前后结果是否不相等,如果不相等为true;否则为false
public class Demo05Compare {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        boolean result1 = a==b;
        System.out.println(result1);// false

        System.out.println(a>b);// false
        System.out.println(a<b);// true
        System.out.println(a>=c);// true
        System.out.println(a<=c);// true
        System.out.println(a!=c);// false
    }
}

5.逻辑运算符

1.结果:boolean型
2.作用:连接多个boolean条件的
符号说明
&&(与)有假则假,符号前后结果有一个为false,结果就是false;符号前后都是true,结果才是true
||(或)有真则真,符号前后结果有一个为true,结果就是true;符号前后都是false,结果才是false
!(非,取反)不是true,就是false;不是false,就是true
public class Demo06LuoJi {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;

        boolean result = (a > b) && (a == c);
        System.out.println(result);

        boolean result01 = (a > b) || (a == c);
        System.out.println(result01);

        boolean result02 = !(a > b);
        System.out.println(result02);
    }
}
&:有假则假,如果符号前面为false,还会继续判断符号后面的
&&:有假则假,如果符号前面为false.符号后面就不判断了 -> 短路效果

|:有真则真,如果符号前面为true,还会继续判断符号后面的 
||:有真则真,如果符号前面为true,符号后面就不判断了 -> 短路效果 
public class Demo07LuoJi {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        //boolean result = ++a > 100 & ++b > 100;
        boolean result = ++a > 100 && ++b > 100;
        System.out.println(result);
        System.out.println(a);
        System.out.println(b);
    }
}
int score = 60
判断score的值是否在0-100之间
    
数学写法:0<=score<=100  
java写法:score>=0 && score<=100

6.三元运算符

1.格式:
  boolean表达式?表达式1:表达式2
2.执行流程:
  先走boolean表达式,如果是true,就走?后面的表达式1,否则就走:后面的表达式2
public class Demo08SanYuan {
    public static void main(String[] args) {
        int score = 60;
        String result = score>=60?"及格":"不及格";
        System.out.println(result);
    }
}
需求:有两个和尚,分别身高为150  , 170 获取两个和尚的最高身高
public class Demo09SanYuan {
    public static void main(String[] args) {
        int heShang1 = 150;
        int heShang2 = 170;
        int result = heShang1 > heShang2 ? heShang1 : heShang2;
        System.out.println(result);
    }
}
需求:有三个和尚,分别身高为150 210 170 获取三个和尚的最高身高
public class Demo10SanYuan {
    public static void main(String[] args) {
        int heShang1 = 150;
        int heShang2 = 210;
        int heShang3 = 170;
        int temp = heShang1 > heShang2 ? heShang1 : heShang2;
        int result = temp > heShang3 ? temp : heShang3;
        System.out.println(result);
    }
}
华为OD机试真题 新系统2026-04-15 Python&JS 实现【失灵的键盘】 有一个键盘有2个按键失灵了,按下这些键时会连续输出其他键对应的字符两次。具体如下: 1. 按下j键一次,屏幕上显示uu(两个连续的u);  按下b键一次,屏幕上显示t(两个连续的t) 2. u键和t键是好的,按下u键一次时,屏幕只会显示一次u(正常按键);按下t键一次时,屏幕只会显示一次t(正常按键) 3. 假定屏幕上连续显示两个t一定是按了一次b键,而不是两次t键;假定按键t之后不会紧接着按键b,即tttt转义为两个b,而不可能是tb 阅读详情

相关推荐

欧姆龙PMAC CK3M控制器新手避坑指南:从开箱到EtherCAT总线配置的完整流程

本文详细介绍了欧姆龙PMAC CK3M控制器的完整配置流程,从开箱检查到EtherCAT总线配置,特别针对新手常见问题提供避坑指南。内容包括硬件连接、软件安装、EtherCAT主站初始化、从站配置、电机参数设置等关键步骤,帮助工程师快速掌握PMAC控制器的使用技巧。

weixin_42532938的博客 387

day02 变量 数据类型转换 运算符

1.变量的数据类型:基本数据类型:4类8种整型:byte short int long浮点型:float double字符型:char布尔型:boolean引用数据类型: 类 数组 接口 枚举 注解2.概述:在代码的运行过程中,值会随着不同的情况而随时发生改变的数据3.作用:一次接收一个数据将来定义一个变量,接收一个值,后续可能会根据不同的情况对此值进行修改,此时可以用变量4.定义:a.数据类型 变量名 = 值;​b.数据类型 变量名;变量名 = 值;​。

知识贩卖机_的博客 1071

相机标定原理与张氏标定法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

heeweii的博客 2280

【day02】变量、数据类型转换、运算符

1.变量的数据类型:基本数据类型:4类8种整型:byte short int long浮点型:float double字符型:char布尔型:boolean引用数据类型: 类 数组 接口 枚举 注解2.概述:在代码的运行过程中,值会随着不同的情况而随时发生改变的数据3.作用:一次接收一个数据将来定义一个变量,接收一个值,后续可能会根据不同的情况对此值进行修改,此时可以用变量4.定义:a.数据类型 变量名 = 值;b.数据类型 变量名;变量名 = 值;

程序员波特 837

2026零成本私有化:OpenClaw一键搭建Discord/Telegram智能机器人,数据不出本地,永久免费替代ChatGPT

如果内置的功能不能满足你的需求,你可以很容易地添加自己的自定义工具。public string Description => "查询指定城市的天气";// 调用天气API获取天气信息return $"city今天的天气是晴,温度25度";// 注册工具今天北京的天气怎么样?大模型的选择很重要:不要盲目追求大参数的模型。对于大多数场景来说,7B参数的模型已经足够用了,而且速度快,内存占用低。上下文长度不要设置太大:上下文长度越大,内存占用越高,推理速度越慢。

2601_94871597的博客 259

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

丨汀、的博客 2650

day02.java变量_数据类型转换_运算符

1.会使用变量,2.识别标识符,3.数据类型转换,4.1算数运算符,4.2自增自减运算符,4.3赋值运算符,4.4关系运算符,4.5逻辑运算符,4.6三元运算符,5.进制的转换(了解),6.位运算符(了解)

qq_46664968的博客 2176

组基轨迹建模 GBTM的介绍与实现(Stata 或 R)

组基轨迹建模(Group-Based Trajectory Modeling,GBTM)(旧名称:Semiparametric mixture model)历史:由DANIELS.NAGIN提出,发表文献《Analyzing Developmental Trajectories:A Semiparametric,Group-Based Approach》GBTM能够将一群人的轨迹分类并生成数个具有代表性的运动轨迹模型,然后对每个轨迹模型进行分析,以了解人们的运动特征、生理水平和风险等级等。

三分钟热度 1万+

java day02 变量、数据类型、类型转换、运算符

1、变量 1.1 什么是变量 变量:计算机内存中的存储空间,是存储数据的基本单位 1.2 如何定义变量 声明变量的3种方式: 声明,再赋值 数据类型 变量名; 变量名 = 值; 声明,并赋值 数据类型 变量名 = 值; 多个同类型变量的声明与赋值 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5; 示例: public class Demo01{ public static void main(String[] args)

qq_43642864的博客 552

强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解

强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解

丨汀、的博客 511

信息传输仿真:卫星通信系统仿真_(12).基于SystemVue的卫星通信仿真

SystemVue是Cadence公司开发的一款用于系统级设计和仿真的软件工具。它主要用于无线通信系统的设计和验证,特别是在卫星通信、雷达、射频和微波通信等领域。SystemVue提供了一个集成的环境,用户可以通过拖拽和连接各种预定义的模块来构建复杂的通信系统模型,从而进行性能分析和优化。

2401_87715305的博客 1370

Day02_变量、数据类型、运算符、类型转换、控制台输入

一. 变量 变量组成: 数据类型, 变量名, 值 变量定义流程: ​ 声明: //开辟整数变量空间 ​ 数据类型 变量名; int money; ​ 赋值: //将整数值赋给变量 ​ 变量名 = 值; money = 100; ​ 应用: // System.out.print(money); 【注】: Java是强类型语言,变量的类型必须与数据的类型一致。 定义变量的三种方式: 先声明,再赋值 int money; money = 100; 声明并赋值 int money =

不愿透露姓名的马建国的博客 693

镜头调焦的 调整的是焦距还是像距?

在镜头 “调焦”(即日常拍照时的)中,调整的核心是,而非焦距。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 1350

JAVASE-02:常量、变量、运算符和数据类型转换方式

JAVASE-02:常量、变量、运算符和数据类型转换方式 1.常量 程序执行过程当中 其值不发生变化的量,在java中分为字面值常量和自定义常量 字面值常量– 整数常量 -- 100 200 3 小数常量 -- 3.123 4.21 布尔常量 -- true false 字符常量 -- 被单引号 所括起来的单个字符 'a' '1' 'A' 字符串常量 -- 被双引号所括起来的单个或多个字符 ”a“ ”asd“ ”你好“ ”hello world“ 空常量 -- null

Hannen的博客 370

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java基础02_变量_数据类型_类型转换_运算符

主要内容 变量 Java数据类型 Java数据类型转换 运算符 学习目标 掌握变量的定义、初始化、使用及注意事项 掌握Java基本数据类型的使用(4类8种) 掌握数据类型的转换及其中的注意事项 第一节 变量 1.1 概念 ​ 变量: 程序运行时候可以变化的量. ​ 思考过没有, 变量用来干什么? ​ 答案: 变量本质就是对"实际量"的一个指代, 就是一个代词. 和我们在数学中见到的函...

能力工场小马哥 362

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java-day02(关键字,变量,进制转换,数据类型转换,运算符)

变量名、方法名:多单词组成时,第一个单词全部小写,其余单词单词首字母大写。 常量名:所有字母都大写,多单词时每个单词之间用下划线_连接。 类名、接口名:多单词组成时,所有单词的首字母大写。

Cat God 007的博客 295

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Day02 Java基础语法(数据类型、常量、变量、数据类型转换、运算符)

Java基础语法(数据类型、常量、变量、数据类型转换、运算符)

qq_43639081的博客 389

JavaSE 02 标识符、常量、变量、数据类型转换、运算符表达式

第一章 标识符 标识符: 程序中我们自己定义的内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。 命名规则:硬性要求 标识符可以包含 英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)。 标识符不能以数字开头。 标识符不能是关键字。 命名规范:软性建议 类命名规范:首字母大写,后面每个单词首字母大写(大驼峰式)HelloWorld 变量名规范:首字母小写,后...

Niiuu的博客 437

%02 java_Java基础02—变量、运算符和数据类型转换(示例代码)

Java语言基础参考资料:《Java从入门到精通》/明日科技编著. 4版. 北京:清华大学出版社,2016一、变量与常量常量:在程序执行过程中,其值不能改变的量称为常量。变量:在程序执行过程中,其值能被改变的量称为变量。变量与常量的命名都必须使用合法的标识符。1、标识符与关键字(1)标识符标识符可以简单地理解为一个名字,用来给类、变量、方法、文件等进行命名的有效字符序列。Java语言规定标识符只能...

weixin_39731586的博客 111

Day02 Java数据类型,类型转换,变量及其作用域,运算符

Java数据类型包括1.基本数据类型:int,float,double,short,byte,long,char,string;2.引用类型:数组,类,接口; 类型转换:强制转换(数据范围大->数据范围小),自动转换(数据范围小->数据范围大); 变量:类变量(static),实例变量,局部变量,常量(final),作用域 运算符:基本运算符,逻辑运算符,三元运算符

m0_67042480的博客 181

Java基础02(常量,变量 ,标识符,数据类型转换,位运算符,运算符的优先级)

本文摘要:编程基础概念包含常量和变量定义。常量分为整数、小数、字符、字符串、布尔和空值类型,各有特定格式要求。变量数据类型包括8种基本类型,各有不同内存占用和取值范围。标识符命名需遵循硬性规则(如不以数字开头、非关键字)和软性建议(如驼峰命名法)。数据类型转换分为自动转换和强制转换,后者可能导致精度损失。位运算符包括与、或、非、异或操作,涉及原码、反码和补码的计算机存储原理。运算符优先级可通过括号明确计算顺序。

Mu_Sen的博客 862

java 转换输入类型,Day02_变量、数据类型、运算符、类型转换、控制台输入

一. 变量变量组成:数据类型, 变量名, 值变量定义流程:​声明://开辟整数变量空间​数据类型 变量名;int money;​赋值://将整数值赋给变量​变量名 = 值;money = 100;​应用://System.out.print(money);【注】:Java是强类型语言,变量的类型必须与数据的类型一致。定义变量的三种方式:先声明,再赋值int money;money = 100;声明...

weixin_39593593的博客 237

java 类型转换和点号运算符的执行顺序_Java基础02—变量、运算符和数据类型转换...

Java语言基础参考资料:《Java从入门到精通》/明日科技编著. 4版. 北京:清华大学出版社,2016一、变量与常量常量:在程序执行过程中,其值不能改变的量称为常量。变量:在程序执行过程中,其值能被改变的量称为变量。变量与常量的命名都必须使用合法的标识符。1、标识符与关键字(1)标识符标识符可以简单地理解为一个名字,用来给类、变量、方法、文件等进行命名的有效字符序列。Java语言规定标识符只能...

weixin_32334681的博客 276

JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符

变量:变量是内存中装载数据的小盒,你只能用它来存数据和取数据计算机存储单元:硬盘属于永久存储,内存属于临时存储1.定义出所有数据类型的变量/* 定义Java中的变量 定义出所有数据类型的变量 四类八种 */ public class Variable{ public static void main(String[] args){ //定义整数类型,字节类型 byte类型 //内...

liying_1234的专栏 412

02 数据类型转换、运算符、方法入门

第一章 数据类型转换 Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。 1.1 自动转换 一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型? int i = 1; byte b = 2; 运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。 自动转换:将 取值范围小的类型 自...

weixin_43353418的博客 5166

模块二.变量 数据类型转换 运算符

模块二.变量 数据类型转换 运算符

m0_72900498的博客 960
上一篇: 01.[环境变量,HelloWorld,变量,常量]
下一篇: 03_流程控制_循环
ChoSeitaku
博客等级 码龄5年 3452粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值