Java笔记01

Java笔记 01

1 Java程序的运行机制

程序的运行机制分为两种:

  1. 编译型
  2. 解释型

两者唯一的区别在于时机不同。举个例子,比如现在有一个中国人和一个外国人,两个国家的文字不同,美国人要看中国人写的书,但他看不懂,此时有两种方式阅读这本书

  1. 此时美国人可以将这本中文的书全部翻译成英文;
  2. 找一个第三方的翻译,让这个翻译把这本书翻译成英文,翻译一段,这个外国人看一段。

这两种方式都可以让这个外国人看完这本书,各有优缺点。在第一个方法中,假如书的原作者对书的内容进行了更新,则原有的翻译版本就不可用了,必须重新翻译一遍。第二个方法中第三方翻译是实时的,能够应对文章内容发生变化的这种情况。回到最初的问题,编译型就对应这个例子中的对整本书进行翻译,解释性就对应第二种方法。

编译型是将整个源码编译成计算机可执行的文件,然后在计算机上运行,这样在电脑上的执行速度较快,开发操作系统通常用这种方式去做,像C/C++语言都是编译型的;解释型通常应用在对计算机执行速度较高的场景,像网页之类的开发,Java就属于解释型语言。但现在计算机硬件发展的很快,计算机内存越来越大,导致这两种方式的区别越来越小了,现在解释型的效率也很高。

笼统地讲,Java的运行机制就是程序员首先编辑源代码,之后Java的编译器会将源代码编译成一个字节码文件,就是那个.class文件;最后提交给操作系统执行,当然中间还有一些流程,等以后学的深了我会重新回来更新这篇博客。

2 IDE集成开发环境安装

我知道的开发Java的软件有eclipse、IDEA,我装的是IDEA旗舰版(还没破解),之前就装过了,所以安装和配置流程就不写了,关于开发环境以及软件的安装网上有很多教程,随着教程一步步安装就可以,安装后可以根据自己的情况对软件进行一些优化。附两个IDEA安装和优化的链接吧,这里我是在网上随便找了两个链接,目的是提供一个关键字的指引,不知道质量如何,感兴趣的小伙伴可以根据关键字自己去搜索筛选。

IDEA社区版安装

IDEA开发环境优化

3 Java基础语法

1 注释

单行注释 //

多行注释 /**/ 键入/ *之后回车即可

文档注释 /** */ 同上,键入/**后回车即可

2标识符

Java中的关键字

关键字

Java标识符

关于标识符,有几个需要注意的地方

  • 所有标识符都应该以字母(大小写都可以),美元符号$,或者下划线_开始
  • 首字符之后可以是字母、美元符号、下划线或数字的任意组合
  • 不能使用前面说的Java关键字作为变量名或方法名
  • 标识符是大小写敏感
  • 可以使用中文或拼音命名,但不建议这样使用。

3.1Java数据类型

Java是一种强类型语言,它要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。与强类型相对的还有弱类型语言。

Java的数据类型分为两大类

  • 基本类型
  • 引用类型

在这里插入图片描述

:浮点类型比较时尽量用相同的类型。


Java常用转义字符

\t 空格 \n 换行 \u 转义(\u后面可以跟一个十六进制数,来表示十六进制所对应的字符) …

//布尔值扩展
boolean flag = true;
if(flag==true){}
if(flag){}    //两行if语句表示的含义相同,推荐使用第二种方法

3.2数据类型转换

由于java是强类型语言,所以要进行有些运算的时候需要用到类型转换。再具体运算时,不同类型的数据先转化为同一类型,然后再进行运算。

------------------------------------->byte,short,char->int->long->float->double

由高到低时需要用到强制转换 (类型)变量名 //(int)10.2
由低到高时会自动转换

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候要进行强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题

示例:

public class HelloWorld {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //数字之间可以用下划线分割,不影响数据的值。
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years; //结果为-1474836480,int的范围为21_0000_0000左右,计算的时候溢出了
        System.out.println(total);
        long total1 = (long)money*years; //在计算之前进行强制转换
        System.out.println(total1);
    }
}

在这里插入图片描述

3.3变量、常量、作用域

变量可以理解为数学应用题中假设的那个未知数x。Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。形式如下:

int a = 1;
//数据类型 名称 = 数值;

变量作用域:

  • 类变量 可以在方法中直接使用
  • 实例变量 在方法中调用实例变量时需要先将类引入
  • 局部变量
public class HelloWorld {

    //类变量 static
    static double salary = 2500;

    //实例变量:从属于对象。定义在类中,在方法中使用。如果不自行初始化,使用的是这个类型的默认值。
    //布尔值:默认值false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        int i = 10; //局部变量,生命周期在它存在的两个括号内。必须声明和初始化值

        HelloWorld helloWorld = new HelloWorld();
        System.out.println(helloWorld.age);       //输出实例变量
        System.out.println(salary);
    }

    //其他方法
    public void method(){
        
    }
}


常量

常量为初始化后不能再改变的值。可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final 常量名=数值;
final double E=2.7; //常量名一般用大写表示
public class HelloWorld {

    //修饰符不区分先后顺序 像static、final等
    static final double PI = 3.14;
    final static double PI1=3.14;
    public static void main(String[] args) {
        System.out.println(PI);
        System.out.println(PI1);

    }
}

在这里插入图片描述


最后总结一下变量的命名规范

  • 所有变量、方法、类名要与其本身含义有相关性。

  • 类成员变量、局部变量:首字母小写和驼峰原则:nextPeople

  • 常量:大写字母和下划线

  • 类名:首字母大写和驼峰原则 HelloWorld

  • 方法名:首字母小写和驼峰原则 add()、addNext()

3.4运算符

在这里插入图片描述

=为赋值运算符;==为比较运算符,即比较两个元素是否相等。

理解++ 、-- 自增和自减的执行顺序

public class HelloWorld {
    public static void main(String[] args) {
        int a = 3;
        int b = a++; //先赋值给b,之后进行自增
        System.out.println(a); //上一行执行后a进行了自增,所以此处a的值为4
        int c = ++a; //先进行自增,之后赋值给c
        System.out.println(a); 
        System.out.println(b);
        System.out.println(c);
    }
}

位运算:

public class HelloWorld {
    public static void main(String[] args) {
        /*
        位运算
        A = 0011 1100
        B = 0010 0100

        A&B 与运算 都是1则为1,否则为0
        A|B 或运算 有一个1则为1 没有则为0
        A^B 两位相同则为0,否则为1
        ~B  对B的每个位取反

        面试题:如何快速计算2*8
        逻辑运算符:<<左移 *2  >>右移 /2  位运算效率高
        0000 0000     0
        0000 0001     1
        0000 0011     3
        0000 0100     4
        0000 1000     8
        0001 0000     8
         */
        System.out.println(2<<3);
    }
}

赋值运算符:a+=b->a=a+b

字符串连接

public class HelloWorld {
    public static void main(String[] args) {
       int a = 10;
       int b = 20;
        //字符串连接符 +
        System.out.println(a+b+"");
        System.out.println(""+a+b);
    }
}

//三元运算符
//x ? y : z
//如果x位true,则结果为y,否则为z
public class HelloWorld {
    public static void main(String[] args) {
       int score = 70;
       String type = score<60?"不及格":"及格";
        System.out.println(type);
    }
}

4包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
  • 一般利用公司域名倒置作为包名 com.baidu.www
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句即可。

IEDA生成JavaDoc帮助文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值