打开入行java的一扇门.01

本文是作者转行计算机软件工程的记录,主要聚焦于java编程的学习。内容涵盖java的编译和运行过程,八大基本数据类型以及运算符的介绍,包括算术、关系、逻辑、赋值和字符串连接等运算符。此外,还讨论了分支结构的初步概念。
摘要由CSDN通过智能技术生成

1、前言

今年4月底,我做一个决定,辞掉原来的工作,入行计算机软件工程这一行业 。人们常说,转行是一件很困难的事情,需要有翻山越岭不辞万难的决心,而计算机行业更是众多领域里起始点较高的一个,为什么计算机行业看起来薪资较高?我觉得和学习成本(时间与金钱)与行业本身形态有关,学习成本决定了行业的下限,行业发展的形态决定了它的上限。

写博客对我来说是一件新鲜而又不陌生的事情。新鲜在于我是第一次在论坛里发表博客;不陌生则是因为我之前的工作需要做许多总结报告。虽然我很想把各个事情都做的尽善尽终,但是对于一个技术小白来说,万事总是开头难。当然船到桥头自然直,想到以后(应该吧)能有一份长久工作可以喂饱自己,还是心存感激。

这里我将每一星期内学习的内容作一个小的总结。下面,将从java的基础从头开始。

2、学习总结

目录

  1. 初识java
  2. java的运行与开发
  3. 八大基本数据类型
  4. 运算符
  5. 分支结构

2.1、初识java

java是一门高级的计算机语言。计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序;

计算机语言里本质上是控制短路与开路的状态,这刚好对应于二进制里的0和1;

java相对于其他高级语言,它最大的特点在于它的跨平台性;

java的编译过程

  • 编译期:java源文件经过编译,生成 .class字节码文件
  • 运行期:JVM加载.class并运行.class(0和1)

一套java源码可以给多个系统使用

JVM:java虚拟机;

JRE:java最小运行环境,包括了JVM与系统类库;

JDK:java最小开发环境,包括了JRE与开发工具包;

TIPS:JDK开发于SUN公司,后被Oracle公司收购

2.2、java的运行与开发

IDE:集成开发环境,一整套带图形界面的功能强大的工具,常见的有idea和eclipse,现在一般都用idea,是JetBrains公司的,分为社区版(免费的)和终级版(收费的)

   - 开发步骤:

     - 新建Java项目/工程--------------------------小区

     - 新建Java包------------------------------------楼+单元

     - 新建Java类------------------------------------房子

 package day01; //声明包day01(楼+单元)
       public class HelloWorld { //声明类HelloWorld(房子)
           //主方法,为程序的入口(大门口),程序的执行从main开始,main结束则程序结束
           public static void main(String[] args) {
               //输出hello world
               //1)严格区分大小写
               //2)所有符号都必须是英文模式的
               //3)每句话必须以分号结尾
               System.out.println("hello world"); //双引号中的原样输出
               System.out.println("这是一段打印输出语句");
           }
       }

注释:解释性文本(计算机是不执行的)

     -单行注释://  文本
     - 多行注释:/*  文本   */
     - 文档注释:/**   文本  */

2.3、八大数据类型

所有数据在计算机里都占有内存,在java里为一个变量(数据)申明(创造)一个标识符(名字),就给这个数据开拓了一个内存空间,用于存放这个数据。而java是一个强数据类型的语言,它所有的数据都有分类,想要声明一个数据,必须有数据类型符,然后给它初始化。初始化一般是:把数字直接输入,该输入的数字称为直接量。

变量的作用域/范围:从变量的声明开始,到包含它最近的大括号结束

标识符:标识符可以简单的理解成一个名字。在Java中,我们需要给代码中的很多元素起名,包括类名、方法名、字段名、变量名等等。我们给对应元素起的名称就被称为标识符,一个正确的标识符需要遵循以下规则:

1、严格区分大小写;

2、不能以数字开头;

3、只能以字母、数字、下划线(_)和美元符($)来命名;

4、不能有关键字;

5、建议只用英文,且见名知义;

变量名除了以上规则外,它的写作方式也有规定:

命名法规则使用范围
小驼峰命名法首字母开头小写,后面字母开头大写变量名、方法名(后面会学到)
大驼峰命名法(帕斯卡命名法)首字母开头大写,后面字母开头也大写类名(后面会学到)

内存空间换算关系:1G=1024M(兆)  1M=1024KB(千字节)  1KB=1024B(字节)   1B=8bit(位)

1、整型

整型可以声明整数,它又分为字节型(byte)、短整型(short)、整型(int)、长整型(long);

字节型(byte):它有一个字节,范围为-128到127,即-2^7~2^7-1;

短整型(short):它有两个字节,单位为-32768到32767,即-2^15~2^15-1;

整型(int):它有四个字节,范围为-21亿多到21亿多,即 -2^31~2^31-1;

长整型(long):它有八个字节,范围为很大,在-2^63~2^63-1,当直接量超过整型时,可以在直接量后面加上字母L或l(不推荐小写,容易与1混淆),这样就能转换成长整型直接量;

整数的直接量默认为int型,但是不能超出范围,否则会编译错误;

运算时若超出范围,结果会溢出,溢出不会报错,但要避免;

两个整数相除,结果还是整数,小数位舍弃;

2、浮点型

浮点型可以声明小数,它又分为单精度浮点型(float)与双精度浮点型(double);

单精度浮点型:float,有四个字节;

双精度浮点型:double,有八个字节,在直接量后面加上F或f,可以转成float型;       

浮点型数据参与运算时,会出现舍入误差,需要精确数字时不用浮点型;

3、布尔型

布尔型(boolean),只有一个字节,只能取值为true和false;

4、字符型

字符型(char),有两个字节,它采用的是Unicode的编码格式,一个字符对应一个码,它本质上是一个int型(0~65535),例如:'a'----97   ‘A'----65    '0'----48。字符型必须放在单引号中,且只能有一个,如果是特殊字符,如 单引号、反斜杠等,需要转义字符 \  来转义;

5、类型之间的转换

基本数据类型从小到大依次为:byte--short(char)--int--long--float--double;

类型的转换有两种方式:

1、自动/隐式类型转换:从小到大,自动转换;

2、强制类型转换:大到小,语法:(目标类型)变量;注意强制转换可能会丢失精度或者溢出;

重点:byte、short、char类型参与运算时,系统一律转换为int型

public class Test {
    public static void main(String[] args) {
        int number = 5;
        short number01 = 125;
        byte number02 = 100;
        //short add = number01+number02; //编译错误,这里系统会自动转换成int型,int型不会自动转换成short型
        short add = (short)(number01+number02);
    }
}

2.4、运算符

1、算数运算符

加法运算:+、减法运算:-、乘法运算:*、除法运算:/、取余运算:%、

自增1:++,即x=x+1,等价于x++(++x)

自减1: --,即x=x-1,等价于x--(--x);

自增自减在单独使用时,x++(--) 等价于++(--)x;

但是在被使用时,x++的值为x,++x的值为x+1;

        int a = 14;
        int b = a++;
        int c = 100;
        int d = ++c;
        System.out.println(b); //14
        System.out.println(d); //101

2、关系运算符

大于>,小于<,大于或等于>=,小于或等于<=,等于==,不等于!=;

关系运算的结果为boolean型,关系成立则为true,关系不成立则为false;

3、逻辑运算符

&&:短路与(并且),两边都为真则为真,见false则false ---若第1个条件为false,则发生短路(后面的不执行了)

 ||:短路或(或者),有真则为真,见true则true ---若第1个条件为true,则发生短路(后面的不执行了)

        int a = 185;
        int b = 36;
        int c = 49;
        boolean cut1 = a<b && b++<c;
        boolean cut2 = a>b || c++<b;
        System.out.println("演示短路"+cut1); //false
        System.out.println("演示短路"+b); //36
        System.out.println("演示短路"+cut2); //true
        System.out.println("演示短路"+c); //49

 !:逻辑非(取反),非真则假,非假则真

boolean b2 = !(a>b); //!的优先级高,所以需要将a>b括起来
System.out.println(b2);     //!false=true
System.out.println(!(a<b)); //!true=false

4、赋值运算符

赋值运算符分为简单赋值运算符与拓展赋值运算符;

简单赋值运算符:=

拓展赋值运算符:+=、-=、*=、/=、%=

拓展赋值运算符在系统里会自动强转类型;

       short s = 5;
       //s = s+10; //编译错误,需强转,改为:s=(short)(s+10);
       s += 10; //相当于: s=(short)(s+10);

5、字符串连接符

就是 + 这个符号,它的规则是两边是数字,则做加法运算,若有一边出现了字符串,结果都会变成字符串类型;

int age = 18;
String name = "yjswep"; //String是字符串数据类型
System.out.println("大家好,我叫"+name); //大家好,我叫yjswep
System.out.println("大家好,我叫"+name+",今年"+age+"岁了"); //大家好,我叫yjswep,今年18岁了       
System.out.println(10+20+""+30); //3030------String
System.out.println(""+10+20+30); //102030----String
System.out.println(10+20+30+""); //60--------String

6、三目运算符

这个运算符可以帮你做判断,并输出你想要的数据;

语法结构: boolean?数1:数2;

执行过程:

       - 整个表达式是有值的,它的值要么是?号后的数1,要么是:号后的数2

       - 计算boolean的值:

       - 若为true,则整个表达式的值为?号后的数1

       - 若为false,则整个表达式的值为:号后的数2

int num = 5;
int flag = num>0?1:-1;
System.out.println(flag); //1
int a=8,b=55;
int max = a>b?a:b;
System.out.println("max="+max);

2.5分支结构

一种条件执行语句,语法结构有三种:单分支结构、双分支结构和多分支结构;

单分支结构:

if(boolean){
        语句块----------有条件执行的语句
 }

执行过程:       

判断boolean的值: 若为true,则执行语句块(if整个结束)
                             若为false,则if直接结束

单分支结构的特点在于该语句块不一定会被执行,因为布尔值只有一个,如果布尔值不相等,语句块就不会执行;

双分支结构:

if(boolean){
        语句块1
}else{
        语句块2
}
执行过程:
判断boolean的值:若为true,则执行语句块1(整个结束);
                            若为false,则执行语句块2(整个结束);

双分支结构的特点在于:一定且只能执行两个语句块的其中一个;

例题(判断闰年):

//        2. 声明一个整型变量year并存储年份,判断其是平年还是闰年,
             若是闰年则输出"某某某年是闰年",否则输出"某某某年是平年"。
//        闰年的判断公式:
//        1)4年一闰,百年不闰,就是:能被4整除,并且,不能被100整除
//                或者
//        2)400年再闰,就是:能被400整除

        int year = 2020;//2020是闰年
        if(year%4==0 && year%100!=0 || year%400==0){
            System.out.println("该"+year+"年是闰年");
        }else{
            System.out.println("该"+year+"年是平年");
        }

未完待续

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值