黑马程序员——java基础知识

本文详细介绍了Java编程语言的基础语法,包括注释的使用、关键字的功能、标识符的规范、常量与变量的概念、数据类型及其转换规则、以及各种运算符的应用场景。适合初学者入门学习。


 [-----------android培训、java培训、java学习型技术博客、期待与您交流!------------](http://itheima.com)


    

一 java代码中的注释

 概述:就是对代码的解释说明性的文字,以便于阅读和理解
 分类:
  A:单行注释 //
  B:多行注释 /* */
  C:文档注释(面向对象部分讲解)
 作用:
  A:对程序进行说明,给人看。
  B:可以对程序进行排错。
//////////此处需要一个截图

二 java的关键字
 概述:被java语言赋予特定含义的单词
 特点:关键数字所有的字母都是小写
 分类:
      A:用于定义数据类型的关键字
        class、interface、byte、short、int、float、double、long、char、boolean、void
      B:用于定义数据类型值的关键字
        true、false、null
      C:用于定义流程控制的关键字
        if、else、switch、case、default、while、do、for、break、continue、return
      D:用于定义访问权限修饰符的关键字
        private、protected、public
      E:用于定义类、函数、变量修饰符的关键字
        abstract、final、static、synchronized
      F:用于定义类与类之间关系的关键字
        extends、implements
      G:用于定义建立实例,及引用实例,判断实例的关键字
        new、this、super、instanceof
      H:用于定义异常处理的关键字
        try、catch、finally、throw、throws
      I:用于包的关键字
        package、import
      J:其他修饰符关键字
        native、strictfp、transient、volatile、assert
三 标识符
 (1)就是给类,接口,方法,变量等起名字。
 (2)组成规则:
  A:由数字,字母,_以及$组成。
  B:不能以数字开头。
  C:不能是java中的关键字。
 (3)常见的命名规则:
     见名知意,驼峰命名法(单词的第一个字母大写)这是一种预定成俗的规定,也不是标准
  A:包 全部小写
   单级:com,cn,linakng
   多级:cn.itheima,com.baidu
  B:类或者接口
   一个单词:Student,Teacher
   多个单词:HelloWorld,MakeName
  C:方法或者变量
   一个单词:main(),name,age
   多个单词:studentName,showName()
  D:常量 全部大写
   一个单词:MAX
   多个单词:STUDENT_MAX_AGE
四 常量
 (1)在程序的执行过程中,其值是不发生改变的量。
 (2)分类:
  A:字面值常量
  B:自定义常量
 (3)字面值常量的分类:
  A:整数常量 12,23
  B:浮点数常量 12.345
  C:字符常量 'a','A','2'
  D:布尔常量 true,false
  E:字符串常量 "hello","world"
  F:空常量 null
5:进制转换相关
 (1)进制:是一种计数的方式。
  x进制表示逢x进1。
 (2)java中的整数的表现形式:
  二进制:以0b开头,由0和1组成。
  八进制:以0开头,由0-7组成。
  十进制:由0-9组成。整数默认是十进制。
  十六进制:以0x开头,由0-9,a-f组成。
 (3)其他进制到十进制的转换:
  系数*基数的权次幂的和。
 (4)十进制到其他进制的转换:
  除基取余,直到商为0,余数反转。
 (5)x进制到y进制
  x - 十进制 -- y进制
 (6)二进制 -- 八进制或者十六进制
  A:二进制 -- 十进制 -- 八进制或者十六进制
  B:二进制 -- 三位组合 -- 八进制
    二进制 -- 四位组合 -- 十六进制
 (7)8421码
  1 1 1 1 1 1 1 1 
  128 64 32 16 8 4 2 1

6:有符号数据表示法(了解)
 (1)在java中,我们的数据是有正负之分的。
 (2)在计算机存储和运算的过程中,数据都是采用补码进行的。
 (3)原码,反码,补码
  正数:原码,反码,补码和二进制形式相同。
  负数:原码和正数的二进制的数值部分相同,符号位是1。
        反码和原码的区别是:符号位不变,数值为1变0,0变1。
        补码:反码+1
 (4)byte的范围:
  byte占用1个字节:
   0 1111111 - 127
   
   (byte)128 -- -128。

   1 0000000 -- 这里的1既可以看成符合位,又可以看成数值位。
   
   -128

  除了:1 0000000 这种特殊情况外,其他的是什么样子就是什么样子的。

7:变量
 (1)在程序执行的过程中,其值在某个范围内可以发生改变的量。
 (2)格式:
  A:数据类型 变量名 = 初始化值;
   int a = 10;
  B:数据类型 变量名;
    变量名 = 初始化值;
   int a;
   a = 10;
 (3)注意:
  在使用一个变量的时候,必须先声明,赋值,最后才能使用。

8:数据类型
 (1)分类:
  基本类型:4类8种。
  引用类型:类,接口,数组。
 (2)基本类型:
  整数:   占用的字节
   byte  1
   short  2
   int  4
   long  8 
  浮点数:
   float  4
   double  8
  字符:
   char  2
  布尔:
   boolean  1
 (3)注意:
  A:整数默认是int类型,浮点数默认是double类型。
  B:如果一个数据想表示为long类型,要加L或者l。
    如果一个数据想表示为float类型,要加F或者f。

9:数据类型转换
 (1)在运算的时候,要求数据的类型一致。
 (2)分类:
  boolean类型不参与。

  A:隐式转换:(自动转换)
   从小到大。
   byte,short,char --> int --> long --> float --> double
   byte,short,char这三个类型之间不转换,他们参与运算的时候都先自动转换成int类型
   

  B:显示转换:(强制转换)
   从大到小。

   格式:
    目标数据类型 变量 = (目标数据类型)(被转换的内容);
   如:  byte b=(byte)2;
  

 (3)long --> float为什么是这个样子的?
  因为他们底层的存储方式不一样。

  long : 2^63
  float : 3.4*10^38

  3.4*10^38 > 2*10^38 > 2*8^38 > 2*2^3^38 = 2*2^114 > 2^63

 (4)byte数据类型的范围是 —128————127,如果超出这个范围,如(byte)130则把剩余的位数重新从-128开始循环
    130-127=3,所以从-128开始查3个数,就是130的byte对应的数值 -126

10:运算符(掌握)
 A:算术运算符
  +,-,*,/,%,++,--
  /:整数相除,结果只能是整数,要想是结果为小数,必须让参与运算的数有一个数小数类型
  +:正号,加法,字符串连接符
  %:取得余数
  ++,--:
   单独使用:在操作数据的前后效果一致。
   参与操作使用:
    在操作数据的前面,是先++或者--,然后参与操作。
    在操作数据的后面,是先参与操作,后++或者--。
 B:赋值运算符
  =:把右边的内容赋值给左边
  +=,-=,*=,/=,%=:把左边的和右边的操作后赋值给左边。

  注意:
   +=隐含了强制类型转换。

   x+=y;等价与:x = (x的数据类型)(x + y);

11:面试题:
 A:类型转换
   规则:如果是变量相加,编译器先提升类型,在相加
         如果说是常量相加,编译器先做计算,在判断结果是否在该数据类型的范围内,
  是的话编译通过,否则,不通过
  byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;
  byte b4 = 3 + 4;
 B:强制转换数据溢出的问题:
  byte b = (byte)130;
  byte bb = (byte)300;
 C:赋值运算符
  short s = 1;
  s = s + 1;这个有问题,运算结果是int类型,却赋值给了short类型,可能损失精度
  和
  short s = 1;
  s += 1;没问题,+=符号中,存在自动类型转换,
  s=(short)(s+1);
      
 D: byte b = 1; b = ++b; 

    ---知识点:自增与自减遵循以下规律
     1.可以用于整形数据类型(byte,short,int,long,),浮点类型(float,double),字符类型(char)
     2.在Java5.0及以上版本中它们可以用于基本类型对应的包装器类
     3.它们的运算结果的类型与被运算的变量的类型相同
       由此知识点知:b = ++b;此语句运算结果仍为byte类型,所以正确


      
     
       


 

  


  -----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

内容概要:本文围绕“考虑电能交互的冷热电区域多微网系统双层多场景协同优化配置”的Matlab代码实现展开,提出一种结合电能交互机制的双层优化模型,用于解决冷、热、电多能耦合背景下多微网系统的协同规划与运行问题。研究采用多场景分析方法应对可再生能源出力与负荷需求的不确定性,通过上层规划设备容量配置与下层优化多时段运行策略的联动,提升系统在复杂环境下的经济性、鲁棒性与能源利用效率。所提供的Matlab代码集成了建模、求解(如YALMIP+CPLEX)与结果可视化全流程,涵盖场景生成与削减、双层优化结构设计及多能流协同调度等关键技术环节,为综合能源系统优化提供了完整的算法实现与技术参考。; 适合人群:具备电力系统、综合能源系统或优化建模背景,熟悉Matlab编程与数学规划方法,正在从事相关领域科研或工程设计工作的研究生、高校研究人员及能源行业技术人员。; 使用场景及目标:①开展冷热电联供(CCHP)多微网系统的容量规划与运行优化研究;②支撑含分布式能源、储能及多能转换设备的综合能源系统多目标、多场景优化建模;③学习与复现双层优化、分布鲁棒优化及场景分析等先进优化方法在能源系统中的实际应用。; 阅读建议:建议结合配套文献与代码同步研读,重点理解双层模型的构建逻辑、变量耦合关系与求解技巧,关注场景生成方法与YALMIP调用细节,通过调整参数、修改目标函数等方式进行仿真实验,以深化对系统优化机理的掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值