局部变量:不是声明在类体括号里面的变量
(1)必须要先赋值,后使用,否则通不过编译,局部变量没有默认初始化值
(2)作用范围:定义开始到定义它的代码块结束
(3)同一范围内,不允许2个局部变量命名冲突
参数传递时,简单类型进行值转递 (参数进行传递时都会先去栈中生成一个副本的,使用结束后释放)
自动类型提升:
byte a = 1;
byte b = 2;
a = a+b; //编译出错自动类型提升成int
a += b; //自加没有自动类型提升问题
类型自动提升规则:
a和b作某种运算
a和b中有double,结果就是double
a和b中有float,结果就是float
a和b中有long,结果就是long
除此之外,结果都是int
把高字节转成低字节,需要作强制类型转换. byte c=(byte)a+b;
移位运算符:效率最高
>> 有符号右移,补符号位
移负数位,则将该数值加32后再进行移位
数值的2进制是按照补码保存的
>>> 右移后高位都补0
逻辑运算符:
&/|也可以作为逻辑运算符
&& 先判断前面一个条件,如果为假,则不用计算后一个条件
|| 先判断前面一个条件,如果为真,则不用计算后一个条件
" + "运算符:
两个操作的对象是数值时,是加法
如果有一个是字符串时,则是字符串的连接
流程控制语句:
同Core C++
switch中的变量类型只能是byte、 short、int、char四种类型
数组:
声明数组:
数组能以下列形式声明:
类型[] array;
类型 array[];
注:
JAVA中推荐用:类型[] array;
一个数组是一个对象
声明一个数组没有创建一个对象
声明时不用指定长度
创建数组:
创建基本数据类型数组:int[] i = new int[2];
创建引用数据类型数组:Student[] s = new Student[100];
数组创建后其中的元素有初始值
类型 黙认值
byte 0
short 0
int 0
long 0l
float 0.0f
double 0.0d
char \u0000
boolean false
reference types null
注:
创建时一定要指定长度
int[] i2=new int[]; //error
初始化数组:
声明、创建、初始化分开:
int[] i; //定义数组
i = new int[2]; //分配空间
i[0] = 0; //初始化
i[1] = 1;
声明、创建、初始化在同一时间 :
int[] i = {0,1}; //显示初始化 {}中有几个值,则数组长度为几
Student[] s = {new Student(),new Student()};
注: int[] i=new int[]{1,2,3}; //后面[]中不可以写数值
int[] i1=new int[3]{1,2,3}; //error
二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组)
int[][] i1 = new int[2][3];
int[][] i4 = {{1,1,1},{2,2,2},{3,3,3}};
int[][] i3 = new int[][3]; //不允许高维没分配空间而先给低维分配空间
int[][] i2 = new int[2][];
i2[0] = new int[2];
i2[1] = new int[3];
数组长度:
数组的属性length
数组长度一旦确定,不可改变
int[] i = new int[5]; 则i.length= 5
数组拷贝:
系统类System提供的
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src: 源数组
srcPos: 从源数组哪个位置开始拷贝(位置指的是元素的下标)
dest: 目标数组
destPos: 拷贝的元素放到目标数组的起始位置
length: 拷贝多少个
数组排序:
自己实现一个排序方法来进行排序
或者调用java.util.Arrays.sort(Object o)
分享到:
相关推荐
### Java基础知识练习题详解 #### 1. 无法读取xxx.java 文件 - **问题解析**:如果遇到“无法读取 xxx.java”这样的错误提示,通常意味着文件路径不正确、文件不存在或者没有权限访问该文件。 - **解决方法**: - ...
#### 一、Java基础语法概览 **1. 变量与数据类型** Java是一种强大的面向对象编程语言,其基础语法是掌握任何Java程序设计的基础。变量是存储数据的基本单元,而数据类型则定义了变量能够存储的数据种类。 - **...
#### 一、基础概念 1. **Calendar 类**: - `java.util.Calendar` 是一个抽象类,用于表示特定时间的日期和时间。 - 可以用来获取特定日期的日、月、年等信息,并可以用来设置或修改日期。 2. **Date 类**: - `...
### Java基础知识 #### 1. Java的基本数据类型与String类型的区别 Java中有八种基本数据类型,分为两类:整数类型(byte、short、int、long)和浮点类型(float、double),此外还包括布尔类型(boolean)和字符...
Java中的多线程是实现时钟类的关键,因为时钟需要在一个单独的线程中运行,以便它能够独立于程序的其他部分持续更新时间。在Java中,我们可以通过继承`Thread`类或实现`Runnable`接口来创建线程。为了创建一个模拟...
### C#语言自学总结知识点...通过以上内容的学习,初学者可以对C#语言和.NET平台有一个基本的认识,同时也能掌握如何使用Visual Studio进行项目开发的基础技能。随着学习的深入,还可以进一步探索更高级的主题和技术。
请注意,这只是一个基础示例,实际的时钟可能需要更复杂的逻辑来处理如闰秒、动画平滑过渡等问题。同时,为了使时钟更具可读性,还可以添加数字或罗马数字来表示小时,并调整指针的形状和颜色以提高视觉效果。
首先,我们需要导入`java.util.Calendar`包,这是操作日期和时间的基础。 ```java import java.util.Calendar; ``` #### 创建Calendar实例 创建一个`Calendar`对象,通常使用`getInstance()`方法,该方法会根据...
Java GUI时钟程序是利用Java Swing或JavaFX库来创建一个图形用户界面,展示实时时钟的应用。在Java中,我们可以构建这样的程序来提供可视化的时间显示,这在教学、小型项目或者作为桌面小工具时非常实用。下面我们将...
总结来说,`Date`和`Calendar`是Java中处理日期和时间的基础,它们提供了创建、修改和格式化日期的能力。虽然Java 8引入了更好的日期时间API,但了解和掌握这两个类的用法对于维护和理解老代码仍然是必不可少的。
### Java 获取时间方法详解 在Java开发中,处理日期与时间是常见的需求之一。本文将详细介绍几种常用的...理解这些基础知识对于Java开发者来说是非常重要的,能够帮助他们在处理日期和时间相关的任务时更加得心应手。
### Java日期处理基础 在Java中,日期时间处理主要包括两个基本类:`java.util.Date` 和 `java.util.Calendar`。此外,还有用于格式化日期的`java.text.SimpleDateFormat`类。这些类提供了处理日期的基本方法。 ##...
本文将详细介绍如何利用`java.util.Calendar`类来实现日期的加减操作,并通过一个具体示例来展示其实现过程。 #### 二、Calendar类概述 `java.util.Calendar`是一个抽象类,用于表示特定时刻的日历时间。它提供了...
通过这些基础知识的学习,可以帮助开发者更好地理解和应用Java中的日期时间操作。此外,对于时区的设置也非常重要,它能确保程序在全球范围内都能正确地运行。希望本文能帮助读者更好地掌握这部分内容。
在Java编程语言中,创建一个数字时钟是一个基础但实用的练习,可以帮助初学者更好地理解线程、日期和时间处理。下面将详细讲解如何利用Java实现一个数字时钟。 首先,我们需要导入必要的Java库,尤其是`java.util....
### Java课程设计时钟设计详解 #### 一、项目背景及目标 在计算机科学与技术专业中,Java...通过完成这样一个实用且具有挑战性的项目,学生可以更好地将理论知识转化为实践能力,为未来的职业发展打下坚实的基础。
在Java编程语言中,模拟时钟的实现是一个基础但有趣的练习,它可以帮助开发者理解线程、日期和时间处理以及用户界面设计。以下是对这个主题的详细解析: 首先,`JAVA 编写的 模拟时钟 源码`通常会包含以下几个主要...
根据提供的文件信息,我们可以总结出Java中日期处理的相关知识点,主要涵盖如何获取当前时间、不同格式的时间转换等操作。...这些知识点是Java编程中处理日期时间的基础,对于从事软件开发的人来说非常实用。