JAVA学习笔记——JAVA基础语法之精华

一、标识符

     概念:JAVA里面我们可以给他取名字的(变量、类、方法等等)就是标识符:

     注意:1、标识符只能包含字母、数字、下划线还有美元符号$

              2、只能以字母、下划线和美元符号开头

二、变量

     概念:JAVA中储存数据的最小单元

     扩展:计算机中保存数据的最小单元是位(一个0或是一个1就是一位)

             8bite = 1byte(字节)  1024byte = 1KB   1024kb = 1MB

              一个英文字符占1个字节;一个中文字符占2个字节

     作用:使用变量名来代替了计算机内存中的地址

  分类:

        按照位置上来分:

    1、成员变量:定义在类的里面,方法的外面

    2、局部变量:定义在方法里面的

    按照数据类型来分

    1、基本数据类型:4类8种

    2、应用数据类型:除了基本数据类型之外的都是基本数据类型

  作用域:变量的适使用范围

             一般情况下变量在哪对大括号中定义就只能在哪对大括号中使用

三、数据类型

  概念:对变量名定义一个存放数据的类型,然后对变量进行赋值

  4类8种数据类型:

  4类:

    1、布尔类型(boolean)

      一般用来表示逻辑运算只有true和false两个值

    2、字符类型(char)

      字符串的常量要使用双引号“ ”  如果是字符的常量要使用单引号‘ ’

      注意:JAVA的字符类型是2个字节  C语言是1个字节的

                         JAVA使用的是unicode编码(思考:理解一下字符编码的概念及作用)

    3、整数类型

      byte(1)  short(2) int(4) long(8)正确使用可以节省内存的占用率

      long型变量后面要加上L

    4、浮点类型

       float   double

  数据类型之间的转换规则:

    1、小的自动转换成大的

             (从低到高数据类型顺序)byte  short   char  int  long  float  double

    2、boolean和其他数据类型之间不允许进行转换

    3、大的转换成小的数据类型要加强制类型转换,务必要注意溢出的问题

    4、byte、short、char之间不能进行转换,如果参与了运算会先把自己转换成int类型

                再 参加运算

           注:当有多种数据类型混合运算的时候先把数据类型转换成参加运算的数据类型最高的那一个再参与运算   

                运算符中&&比逻辑与运算效率更高,因为当前面的计算结果出来之后为false的话就不需要再计算后面的而是直接给出结果   

四、参数

  实际参数:方法调用的时候传入的参数既称为实际参数

  形式参数:就是用来接受实际参数的,一般放在被调用的函数体里面的

  注意:形式参数和实际参数的数据类型要一样,个数要匹配

 

五、面向对象和面向过程的区别

  面向过程:它所考虑的是过程和步骤,比如说开车去深圳我们要考虑的是怎么去也就是说:what  to do

  面向对象:它所考虑的是有几个对象,比如开车去深圳我们要考虑的就是有几个对象,也就是说:how to do

六、类

  概念:是对象的模板,它是具有相同属性和行为(方法)的一组对象的集合

  对象和类的区别:类是抽象的,而对象是具体存在的

    知识扩充:同一个文件夹中只能有一个类是public的,而且main()方法绝对是包含在public类当中

七、构造方法(构造器、构造函数)

  作用:1、主要是用来创建对象    2、初始化成员变量  

  特点:1、必须与类名相同   2、没有返回值类型,void也没有  3、每一个类都会有一个隐式的构造方法,没有参数和方法体  4、手动添加显式的构造方法那么隐式的构造方法自动消失

  

    知识扩充:面向对象编程思维步骤:1、考虑有几个对象  2、通过对象确定有几个类  3、找出每一个类中存在的方法  4、调用相应的方法实现功能

例如这个简单的例子:public class test{
          public static void main(String[] args){
              Mouse mouse = new Mouse();
              mouse.name = "mick";
        
              Cat cat = new Cat();
              cat.name = "Tom";
        
              cat.Catch(mouse);
        }
      }

      class Cat{
          String name;
    
          public void Catch(Mouse mouse){
              mouse.cry();
          }
      }

      class Mouse{
          String name;
    
          public void cry(){
              System.out.println(name + "  is crying");
          }
      }

        思维方式:找出有两个对象tom猫和mick老鼠。进而找出有两个类一个是猫类一个是老鼠类,然后确定两个对象内部分别包含两个方法一个是属于tom对象的catch()方法一个是属于mick 对象的cry()方法

 

    专家模式:一个方法改变的是那个对象的状态(属性),那么该方法就属于谁

八、JVM(JAVA虚拟机)的四个区域

  1、代码区(code segment):存放的是字节码

  2、堆区(heap segment):存放的是对象

  3、栈区(Stack segment):存放的是局部变量

  4、栈区的一块特殊区域(static segment):存放字符串常量和静态变量

    堆和栈的区别:堆可以保存大的数据类型运行速度慢;栈只可以保存小的数据内容但是运行速度快

    局部变量和成员变量重名的问题解决办法

         办法:该情况下使用this指针,因为每一个对象都有一个this指针,相当于当前对象的引用。原理如下图所示:

                        图  1

 

九、成员变量初始化

  1、JAVA当中,成员变量会默认初始化

      数值类型:默认为0     布尔类型(boolean):默认为false      字符类型(char):默认是空   引用数据类型:默认是NULL

  null值的含义:表示一个引用没有指向任何一个对象,也就是谁栈中的一个引用没有指向任何一个栈中的内存地址,如上图所示形象来说就是“引用”的那个箭头没有

  2、JAVA中的垃圾回收机制(GC)

    如果一个对象没有指向任何一个引用,那么这个对象就是JAVA中的垃圾,JAVA会自动调用GC自动收回

      知识延伸:如果说在JAVA中需要一个对象使用完后就被GC收回,最好的变法就是把指向这个对象的引用设置为NULL

 

十、Static关键字

  1、加上static的成员变量称之为静态变量(类变量)

    static segment中的数据不能重复,所有对象共享其数据,其中一个对象对其进行修改之后那么其他的对象的值也随之改变

    因为所有对象共享它,跟对象没有任何关系,所以也就称之为类变量;可以使用  类名.变量名  来调用

    如下图所示逻辑:

    

                    图  2

    堆里面的两个对象共享 Static segment里面的静态变量Corcol;如果要改变其值只需使用  Person.Corcol  即可改变其值

  2、加上static的方法称之为静态方法(类方法)

    类方法不需要创建对象来调用,可以直接是用  类名.方法名  调用

    注意:(1)、静态的方法只能访问静态的成员变量

       (2)、非静态的方法既可以访问静态的成员变量也可以访问非静态的成员变量

    知识延伸:为什么main()方法是static的?

      因为main()方法是程序的入口,在使用main()方法之前不允许有任何的对象被调用,所以说main()方法务必是static的

转载于:https://www.cnblogs.com/hejiajunsh/articles/2881397.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言 行程长度编码,C语言编程题,求大佬帮助,关于数组的。

满意答案6kidf3xhs2017.11.07采纳率:41% 等级:8已帮助:62人2 个关键:2位数字的随机数: a[i] 10 rand() % 90;10位或个位 含5 的 并高于平均值的 数:if (a[i]>ave && ( a[i]%50 || (a[i]/10)…

wpf学习笔记二 深入学习 xaml

1、XAML 主要用于绘制UI界面,最大的优点是能使UI与运行逻辑分离开来,使得整个程序回到逻辑处理上来。 每一个标签对应.NET Framework类库的一个控件类。通过设置标签的Attribute,不仅可以对标签所对应的控件 对象Property进行赋值&#xf…

cortex a7 a53_小号“A7”终于亮相,配4米9车长 大溜背!堪称15万内最强颜值!

原标题:小号“A7”终于亮相,配4米9车长 大溜背!堪称15万内最强颜值!今天来推荐一款b级轿车,大家都知道现在国内热度最高的就上suv车型了,但是销量最高的车型依旧还是轿车车型,因为轿车车型的粉丝…

C语言数据结构迷宫实验报告,数据结构c语言课程设计报告之迷宫

数据结构c语言课程设计报告之迷宫 C语言与数据结构课程设计报告学 号 ** 姓 名 ** 课程设计题目 迷 宫 求 解 2012 年 5 月目 录1 需求分析 1.1 功能与数据需求 1.1.1 题目要求的功能 1.1.2 扩展功能 1.2 界面需求 1.3 开发环境与运行需求 2 概要设计 2.1主要数据结构2.2程序总…

unicode字符大全可复制_说说Excel不可见字符的那些事

今天小伙伴问了个问题看上去啥也没有,为什么黏贴到记事本上前面那么多空白呢?典型的不可见字符惹出来的麻烦,这个往往是公司软件导出数据造成的我们今天就来细说说不可见字符的那些事拿上面的例子说明大部分不可见字符,这一步就能…

删除后别人的微信号变成wxid_微信偷偷更新:终于能改微信号,每年改一次

跟微信打交道多年,机哥可以说是六号线最熟知微信套路的人。比如,微信最喜欢在临近周末的时候,来一波悄悄更新。。难不倒我!微信新动态,几乎每次都被机哥妙手抓住。掐指一算,今天周五。安卓版微信 7.0.15 更…

android设置多个按钮,android代码中设置两个按钮之间位置

package com.example.helloworld01;//包名import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.graphics.Color;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget…

cad管线交叉怎么画_高效设计!多种方式进行管线连接、伸缩

节点连接就是需要把一些节点连接起来,需要通过拖拽把他连接起来,类似CAD的延伸。管立得中的节点连接是可以创建他们的连接关系的,会进行管道的联动。下面是使用管线连接功能进行连接节点,以及管道伸缩的的操作方式。一、管线连接1…

pp助手苹果版_生日助手时间管理软件免费版下载-生日助手倒计时app苹果版下载ios...

生日助手app是一款全新的时间管理软件,帮助你更好的进行时间管理快乐生活,能够帮助你准确提醒你想要设定的重要日子,app的功能服务支持除了日历以外,还有计算器、天气预报、倒计时还有星座等,非常实用哟。app能够帮助用…

Handler post用法整理

来自:http://www.eoeandroid.com/forum.php?modviewthread&tid197324 感谢原作者. /** 在这个demo中,整个过程如下:程序一启动,就把MyRunnable加入到消息队列中,android的handler是异步机制,所以在handler.post(n…

zabbix华为交换机模板_【教程】思科交换机镜像端口配置实例

关注我,你的眼睛会怀孕镜像口就是把思科交换机上的其他口的数据流量全部转到一个口或者两个口上,通常被用作排查问题或者获取数据流量。下面简单介绍下怎么配置源目的镜像口吧。1、使用telnet或者ssh连接到交换机上,可以使用连接工具&#xf…

linux中死锁的概念,【Linux】死锁概念总结

什么是死锁如果一组进程(或者线程)中的所有进程(或者线程)都在等待该组中其他进程(或者线程)才能引发的事件,那么这组进程(或者线程)就是死锁的死锁出现的情况举例(1)线程自锁,自己将自己锁住当进程(线程)第一次访问一个资源时,对该资源进行加…

revo uninstaller pro 序列号_iPhone12/pro已下架,在天猫

苹果10月份发布的首款5G版iPhone手机iPhone12系列手机一共有四款不同的型号分别为iPhone12 mini,iPhone12,iPhone12 Pro以及iPhone12 Promax。其中iPhone12以及iPhone12 Pro已经正式开始发售了,作为首款5G版iPhone手机,iPhone12系…

大话数据结构文摘

第1章 数据结构绪论 程序设计数据结构算法 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合 1.逻辑结构 :是指数据对象中数据元素之间的相互关系 a:集合结构 b:线性结构 c:树形结构 d:图形结构 2.物理结…

vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析

一、名称解释逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密、反汇编、系统分析等多种计算机技术,对软件的结构、流程、算法、 代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、 算法、…

android 好玩的ui,让安卓更好玩 这些Launchers值得拥有

【手机中国新闻】如果你对Android的布局和界面越来越厌倦,那么是时候安装一个新的启动程序了。Launchers可以让你定制带有主题和图标包的智能手机,还可以在切换屏幕、启动应用程序等操作时,几乎完全控制手机的性能。以下是安卓智能手机或平板…

微星主板rgb_虽然这块主板价格有点小贵,但用过之后,感觉还是可以接受的

其实这块主板并不算贵,但它与其它型号,其它品牌的丐中丐主板相比,的确要贵好二、三百多元。对于有些用户而言,贵这几百元,完全就是一种赤裸裸的抢钱行为,所以早就在心里打上了“不值”的标签。能用丐中丐的…

三层架构学习的困难_“网工起航计划”3天集训营 带你了解大型企业网络架构设计!...

点击蓝字关注我们网工起航计划3天集训营 带你了解大型企业网络架构设计开营时间:8月26日晚8点DAY1:企业园区网二层架构冗余设计实战 时间:8月26日20:00-21:301、网络通信过程详细解析2、交换机工作原理详解3、企业园区网二层架构冗余设计涉及技术点&a…

mvn 汇编_2020年简单的早安共勉句子短信汇编58条

2020年简单的早安共勉句子短信汇编58条爱情,就像两个人在拉猴皮筋,疼的永远是后撒手的那个。早安!以下是小编为大家推荐的早安共勉句子58条,欢迎大家借鉴与参考,希望对大家有所帮助。1、这地球少了谁都照样转,就是少了…

华为p50预装鸿蒙系统,华为P50系列将至,内部测试预装鸿蒙系统,还有4款重磅新品将发布...

2021年的上半年旗舰手机发布时间相较往年提前很多,小米11甚至赶在2020年12月份就带着骁龙888处理器强势登场,随后包括iQOO7、vivo X60 Pro系列、realme GT、Redmi K40系列以及众多国产新旗舰机型相继登场,如今包括OPPO、一加科技等厂商也已经…