Java 7天劝退

笔者为了面试,回顾下自己java基础,适合有java基础的同学。

Java是什么?

Java就是一门编程语言,其思想是面向对象,对应不同的技JavaSE,JavaEE,JavaME等。从编译原理的角度来说,它属于解释性语言也属于编译行语言。
Java有健壮性,是一种类似c语言,舍弃了c语言中容易出错的指针(以引用取代),有重载继承等特性,增加了回收机制。

解释性与编译性语言

编译型语言:使用编译器一次性将所有源代码编译为一个可执行程序,一次编译可重复执行。代表语言有C、C++、Golang、汇编等
解释性语言:需要对应的解释程序获编译程序对其运行进行翻译,然后在机器上面运行。代表语言有JavaScript、Python、PHP、Shell等。
Java的编译过程大致包括编译,运行,也就决定了Java的特性:跨平台
在这里插入图片描述
其中要理解JDK,JRE,JVM的关系:
JDK(Java开发工具包)包含开发Java程序的工具群(javac.exe,java.exe,javadoc.exe),以及Java程序的运行时环境JRE。
JRE(Java运行环境)包括Jvm,Java各种类库
JVM(虚拟机):一个类似于电脑的运行平台
在这里插入图片描述

搭建环境

网上有教程,笔者就不一一赘述了。可以把jdk装在c盘里面,jdk占的内存不大

第一个程序

public class Main {
    public static void main(String[] args) {
        System.out.println("helloword");
    }
}

结果

基本语法

注释

单行和多行注释,文件注射

//这是一个单行注释
/*
这是一个多行注释
*/
/**
*这是一个文件注释
**/

关键字

定义:Java定义的特殊含义的小写单词
关键字可以参考菜鸟教程

https://www.runoob.com/java/java-basic-syntax.html

标识符

对于各种变量,方法和类等要素命名使用的字符串叫做标识符
规则:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

变量

变量:是程序最基本的存储单元,包括变量类型,变量名称,存储的值,用来保存数据

/**变量类型:String 变量名称:result 存储的值"helloworld"
*/
 String result="helloworld";

注意:必须先声明后使用,只有在作用域{}里面才有效,而且作用域里面有且只有一个相同的变量名

基本数据类型

按照基本数据类型分为,基本数据类型和引用数据类型
基本数据类型

名称大小例子
byte1字节=8bitbyte a = 100
short2字节=16bitshort s = 1000
int4字节=32bitint a = 100000
long8字节=64bitlong a = 100000L
float4字节=32bitfloat f1 = 234.5f
double8字节=64bitdouble f1 = 12.9867;
char1字符=2字节char letter = ‘A’;
boolean1字节boolean one = true

注意:
Java整型常量默认为int,浮点型常量默认为double,声明float时候必须后面加f或者F

基本数据类型之间的运算

除了boolen以外的7种

  1. 自动类型提升
public static void main(String[] args) {
        byte b1=2;
        int i1=129;
        int i = b1 + i1;
        System.out.println(i);
        //131
    }

当容量小的数据类型与容量大的数据类型做运算时候,结果自动提升为容量大的数据类型。本质上就是小转大。byte、char、short->int->long->float->double
说明:容量表示的数字范围的大小

 public static void main(String[] args) {
        //A在ASSII字符集表示65
        char c1='A';
        int i2=c1+1;
        System.out.println(i2);
        //66
    }
  1. 强制转化类型
public static void main(String[] args) {
        double d1=123.5;
        //使用()强转
        int i1=(int) d1;
        System.out.println(i1);
        //123

        int i2=128;
        byte b1=(byte) i2;
        System.out.println(b1);
        //-128
    }

注意:使用()进行强转,可能导致精度损失

基本数据类型与字符串String的运算

String属于引用数据类型,使用" "定义,有且只有使用+进行连接运算,结果依然是String

public static void main(String[] args) {
        String str="helloworld";
        String str1="";
        //char c1='' 编译不通过;
        System.out.println(str1);
        System.out.println(str);
        // helloworld
			int i1=100000;
        String s = i1 + str;
        System.out.println(s);
        //100000helloworld
        
    }

关于+连接的练习

public static void main(String[] args) {
        char charResult='A';
        int intResult=100;
        String str="hello";
        System.out.println(charResult+intResult+str);
        //165hello
        System.out.println(charResult+str+intResult);
        //Ahello100
        System.out.println(charResult+(intResult+str));
        //A100hello
        System.out.println((charResult+intResult)+str);
        //165hello
        System.out.println(str+charResult+intResult);
        //helloA100
    }
public static void main(String[] args) {
        System.out.println("* *");
        //* *
        System.out.println('*'+'\t'+'*');
        //93
        System.out.println('*'+"\t"+'*');
        //*	*
        System.out.println('*'+'\t'+"*");
        //51*
        System.out.println('*'+('\t'+"*"));
        //*	*
    }

变量类型

按照变量声明的位置分类,分为成员变量和局部变量

  • 成员变量:实例变量(不用 static 修饰)类变量(用 static 修饰。)
  • 局部变量:形参(方法,构造器定义的变量),方法局部变量(在方法里面定义),代码局部变量(在代码里面定义)
    注意:局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

运算符

用来表示数据的运算、赋值、比较等的特殊符号

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 位运算符
  • 三元预算符

算术预算符

假设i=15,j=2;

符号含义例子
“+”加法i+j
“-”减法i - j
“*”乘法i * j
/除法j / i
取余i % j
++自增i++,++i
自减i–,–i
 public static void main(String[] args) {
        int i=15;
        int j=2;
        System.out.println(i+j);
        System.out.println(i - j);
        System.out.println(i * j);
        System.out.println(j / i);
        System.out.println(i % j);
        System.out.println(i++);
        System.out.println(i--);
    }

结果:

17
13
30
0
1
15
16

注意:

  1. %:取模的结果与被模数符号相同
  2. i++和++i的比较
 public static void main(String[] args) {
        int i=15;
        int i1=i++;
        int j=10;
        int j1=++j;
        System.out.println(i1);
        System.out.println(j1);
    }

结果

15
11

总结:前++:先增加1,后运算;后++:先运算,后增加1
3. 自增和自减不会改变本身类型
关于自加和自减的练习

public static void main(String[] args) {
        int i1=10;
        int i2=20;
        int i=i1++;
        System.out.println("i="+i+","+"i1="+i1);
        i=++i;
        System.out.println("i="+i+","+"i1="+i1);
        i=i2++;
        System.out.println("i="+i+","+"i2="+i2);
        i=--i;
        System.out.println("i="+i+","+"i2="+i2);
    }
i=10,i1=11
i=11,i1=11
i=20,i2=21
i=19,i2=21

赋值运算符

使用“=”进行赋值,当两边数据类型不一致时。可以使用自动类型转换金额强制类型转换处理,支持连续赋值,不会改变本身的数据类型
扩展赋值运算符:+=、-=、*=、/=、%=

比较运算符

 public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("a == b = " + (a == b) );
        System.out.println("a != b = " + (a != b) );
        System.out.println("a > b = " + (a > b) );
        System.out.println("a < b = " + (a < b) );
        System.out.println("b >= a = " + (b >= a) );
        System.out.println("b <= a = " + (b <= a) );
    }
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

逻辑运算符

操作都是boolen类型。有&&、||、&、|、!

public static void main(String[] args) {
        boolean a=true;
        boolean b=false;
        System.out.println("a && b = " + (a&&b));
        //&&:表示与,相当于并且,结果false
        System.out.println("a || b = " + (a||b) );
        //||:表示或,相当于或者,结果true
        System.out.println("!(a && b) = " + !(a && b));
        //!:表示非,相当于取反,结果为结果true
    }

注意:&&和& ,||和|的区别
逻辑预算符的练习

 public static void main(String[] args) {
        boolean x=true;
        boolean y=false;
        short z=42;
        if ((z++==42)&&(y=true)) {
            z++;
        }
        System.out.println("z="+z);
        if((x=false)||(++z==45)){
            z++;
        }
        System.out.println("z="+z);
    }
    //结果为44 46

位运算符

位预算符在实践中开发中用得少,了解即可

https://www.runoob.com/java/java-operators.html

三元运算符

一个类似于if/else结构的运算符
格式:条件表达式?表示式1:表达式2;
注意

  1. 表达式为true,运算结果为表示式1;为false,运算结果为表达式2;
  2. 表达式1和表达式2结果必须相同
 public static void main(String[] args) {
        int i=1;
        int j=39;
        int max=i>j?i:j;
        System.out.println("最大的数为"+max);
        //39
    }

运算符优选级

优先级如下表
在这里插入图片描述

只有单目预算符,三元运算符。赋值运算符从右到左。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
劝退计算机视觉是指一些人或机构认为计算机视觉领域发展已经陷入瓶颈,建议学生或研究者转向其他领域进行研究或学习。我认为对于劝退计算机视觉的观点,我们需要进行客观的评估和判断。 首先,虽然计算机视觉领域在某些问题上面临挑战,但它仍然是一个充满活力和发展潜力的领域。计算机视觉在许多实际应用中具有重要价值,如图像识别、智能驾驶、医学影像等。随着技术的不断发展和创新,我们可以期待计算机视觉领域仍然有很多未被发掘的机会和问题等待解决。 其次,计算机视觉作为人工智能领域的一个重要分支,与其他领域的交叉融合也具有广阔的前景。例如,计算机视觉与自然语言处理、机器学习、图像生成等领域的结合,可以推动更多复杂任务的解决。因此,有时在计算机视觉领域遇到困难时,可以考虑从多个角度思考和解决问题,而不是轻易放弃。 最后,个人的兴趣和热情也是选择研究方向的重要因素。如果你对计算机视觉领域充满兴趣,并且愿意投入时间和精力进行深入学习和研究,那么劝退计算机视觉可能不是一个明智的选择。相反,你可以通过深入研究和不断学习来应对挑战,并为该领域的发展做出贡献。 综上所述,劝退计算机视觉是一个有争议的观点。我认为我们应该客观评估计算机视觉领域的发展前景,并根据个人兴趣和热情做出选择。无论选择哪个领域,都需要坚持学习和创新,为科学技术的进步做出自己的贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值