目录

java基础

  1. 编写Java程序

    • java代码必须驻留在一个类中
    • java源文件名必须和类名相同。
    • java源代码文件扩展名必须为.java
    • 所有的Java 程序由public static void main(String []args)方法开始执行。
  2. 编译java程序

  3. 运行java程序

    • java 类名(不包含class扩展名)

基本语法

java标识符

  • 标识符必须不是java关键字,不能是一个布尔字面值,不能是空字面值
  • 标识符必须在其作用域内是唯一的。
  • 标识符是java字母和数字的一个长度没有限制的序列。
  • 大小写敏感:标识符Hello与标识符hello是不同

所有的标识符都应该以字母(A-Z或者a-z),美元符(\()、或者下划线(_)开始,
之后可以是字母(A-Z或者a-z),美元符(\))、下划线(_)或数字的任何字符组合。

合法标识符举例:row_count、$salary、_x3、x2、__1_value;非法标识符举例:2x、-salary

java变量

变量类型###

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)

变量声明

		byte x;

		int rowCount;

		char;

		int a,b 等价于 int a; int b;

		char x = 'd';

变量的命名惯例

  • 变量名应以小写字母开头且混合大小写;

  • 后续的单词都以一个大写的字母开头,不应以_或$开头

java常量

  • java中常量,一旦赋值之后,其值不能修改。赋值时候不能超过类型的最大值。

  • 常量名通常都是大写的

  • 单词之间用下划线隔开

Java 基本数据类型#

内置数据类型##

  • byte:

    byte 数据类型是8位、有符号的,以二进制补码表示的整数;

    最小值是 -128(-2^7);

    最大值是 127(2^7-1);

    默认值是 0;

    byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

    例子:byte a = 100,byte b = -50。

  • short:

    short 数据类型是 16 位、有符号的以二进制补码表示的整数

    最小值是 -32768(-2^15);

    最大值是 32767(2^15 - 1);

    Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

    默认值是 0;

       例子:short s = 1000,short r = -20000。
  • int:

     int 数据类型是32位、有符号的以二进制补码表示的整数;
    
     最小值是 -2,147,483,648(-2^31);
    
     最大值是 2,147,483,647(2^31 - 1);
    
     一般地整型变量默认为 int 类型;
    
     默认值是 0 ;
    
     例子:int a = 100000, int b = -200000。
  • long:

      long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    
      最小值是 -9,223,372,036,854,775,808(-2^63);
    
      最大值是 9,223,372,036,854,775,807(2^63 -1);
    
      这种类型主要使用在需要比较大整数的系统上;
    
      默认值是 0L;
    
      例子: long a = 100000L,Long b = -200000L。
    
      **注:**"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
  • float:

      float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    
      float 在储存大型浮点数组的时候可节省内存空间;
    
      默认值是 0.0f;
    
      浮点数不能用来表示精确的值,如货币;
    
      例子:float f1 = 234.5f。
  • double:

      double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
    
      浮点数的默认类型为double类型;
    
      double类型同样不能表示精确的值,如货币;
    
      默认值是 0.0d;
    
      例子:double d1 = 123.4。
  • boolean:

      boolean数据类型表示一位的信息;
    
      只有两个取值:true 和 false;
    
      这种类型只作为一种标志来记录 true/false 情况;
    
      默认值是 false;
    
      例子:boolean one = true。
  • char:

      char类型是一个单一的 16 位 Unicode 字符;
    
      最小值是 \u0000(即为0);
    
      最大值是 \uffff(即为65,535);
    
      char 数据类型可以储存任何字符;
    
      例子:char letter = 'A';。

注: 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。

引用数据类型##

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site("Runoob")。

Java类型转换#

  • 自动类型转换(加宽转换)

    必须满足转换前的数据类型的位数要低于转换后的数据类型

  • 强制类型转换(收窄转换)

  • 隐含强制类型转换

注:

  1. 不能对boolean类型进行类型转换。
  2. 不能把对象类型转换成不相关类的对象。
  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  4. 转换过程中可能导致溢出或损失精度。
  5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

java注释

public class HelloWorld {
/* 这是第一个Java程序
*它将打印Hello World
* 这是一个多行注释的示例
*/
public static void main(String []args){
// 这是单行注释的示例
/* 这个也是单行注释的示例 */
System.out.println("Hello World");
}

}

操作符#

  • 自增操作符
  • 逻辑取反操作符
  • 位取反操作符
  • 算术操作符

java语句#

  • 条件语句

  • 循坏语句

    • while循环
    • do...while循环

while循环只要布尔表达式为 true,循环就会一直执行下去。如果不满足条件,则不能进入循环。

但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

for循环

`for(初始化; 布尔表达式; 更新) {
//代码语句
}` `for(声明语句 : 表达式)
{
//代码句子
}`
  • break语句

    • break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

    • break 跳出最里层的循环,并且继续执行该循环下面的语句。

    • continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

    • 在 for 循环中,continue 语句使程序立即跳转到更新语句。

    • 在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

  • switch case语句

    • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

    • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

    • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

    • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

    • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

    • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

    • 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

测试反思#

强制类型转换问题



s+1:属于int类型

所以程序报错不能将类型int转换为类型short,必须强制转换

a=(short)(a+1);



运算符+=隐藏了一个强制类型转换

public class Test {

    public static void main(String[] args) {
short a=1;
byte b=1;
a=(short)(a+1);
b+=1;
System.out.println(a);
System.out.println(b);
}
}

输出结果都为2.

类型最大值

System.out.print( "Integer.MIN_VALUE == -Integer.MAX_VALUE:"+(Integer.MIN_VALUE == -Integer.MAX_VALUE ));

输出为FALSE

java学习(一)的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  4. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  5. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  6. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  9. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  10. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

随机推荐

  1. (error) LOADING Redis is loading the dataset in memory

    redis读取/重启之后读取报错:(error) LOADING Redis is loading the dataset in memory 1.redis将之持久化的数据重新写入,等待数据写入完成 ...

  2. 6.2 集合和映射--集合Set->底层基于链表实现

    在6.1中我们实现了底层基于二叉搜索树的集合,本节就底层如何基于链表实现进行学习,注意:此处的链表是之前自己封装的. 1.集合set相关功能 1.1 add()的不同 用于链表本身没有去重的效果,因此 ...

  3. 修改 Vultr 登录密码

    Debian,Ubuntu 访问控制台,打开在线 Console,点击右上角的 “Send CtrlAltDel”,按 ESC 键启动 GRUB boot prompt. 按 e 编辑第一启动项.按 ...

  4. jedisCluster 报错: redis.clients.jedis.exceptions.JedisClusterException: No way to dispatch this command to Redis Cluster because keys have different slots.

    根本原因:jedisCluster不支持mget/mset等跨槽位的操作. 版本:2.9.0 解决办法,推荐更改redis的驱动修改为: lettuce lettuce 项目地址:https://gi ...

  5. Canvas 实现绘制图表

    这里用canvas实现了两个简单的图表,用到了canvas的基本用法,效果如下 新建 chart.js 文件,封装绘制方法 构造方法 function myChart(config){ this.wi ...

  6. Android转换集合数据(ArrayList)为Json格式并上传服务器

    使用Gson上传集合数据到服务器,1.最外层用 ArrayMap<String, Object> 封装:2.通过  mRequestParam.put("cmdLineIds&q ...

  7. week08 S8-01 docker images tensorflow-jupyter

    rt 官网http://jupyter.org/ 安装 一种是 npm install的方式 这种需要自己配置 python和那个tansflow很麻烦 推荐使用docker方式 登录 docker ...

  8. keil5一点project就闪退

           进注册表“HKEY_CURRENT_USER——SOFTWARE——Keil——矿ision5——Recent Projects”里面,保留一个默认的(我是保留了,估计删掉也可以),其余 ...

  9. 图解Windows 10下Visual Studio Code的下载和安装

    1. 百度搜索“Visual Studio Code”,如下图所示: 2. 点击第一个搜索结果项,进入官方网站,然后点击“Download for Windows”,如下图所示: 3. 进入提示下载页 ...

  10. python数据类型及其详解

    一.数据类型介绍 1.字符串(string) 三种类型:单引号,双引号,三引号 a = 'jam' b = "JamHsiao" c = '''JAMHSIAO''' print( ...