笔者之前有C语言的基础,这部分基础可能有讲的不全面的地方欢迎提问,一定尽力解答!!!!
认识标识符
非法标识符:
1.JAVA保留的关键字,如class,int
2.首字母为数字,如6num,778
3.含有特殊符号,运算符,如abc@,a+4
认识关键字
也叫保留字
表中都是JAVA保留的关键字,都是小写字母
认识注释
注释在平常的生产项目中非常重要,使用注释不仅能解释程序,在测试和后期维护时尤为重要,一定程度上注释也代表了程序员的水平,养成良好的注释习惯极为重要。
JAVA注释根据不同用途分为3种类型
1.单行注释
如:int i=1;//定义整数,并为其赋初值
2.多行注释
如:
/*int a=1;
b=a;*/
3.文档注释
第二,三行的*,其实不是必需的,仅仅是为了注释部分的美观
1 /**
2 * @author lucksim
3 * 循环块
4 */
认识常量
声明变量
final 数据结构 常量名称=值;
常量名称通常使用大写字母
常量必须在声明时对其进行初始化
final关键字用来修饰基本数据类型的常量
也用来修饰“对象引用”,或者方法
/**
* @author 86152
*
*/
public class demo {
static final double PI=3.1415;
public static void main(String args[])
{
System.out.println("圆周率是:"+PI);
}
}
认识变量
变量是存储数据的载体,变量的数值可以被读取和改变,是一切计算的基础
1.变量的声明
1 数据类型 变量名;
2 数据类型 变量名=数值/表达式;
建议读者使用声明方法2
如:
int a=1,b=2,c=3;//声明变量a,b,c,并为之赋值为1,2,3
声明变量有两个作用
1.指定内存中分配空间大小
2.规定这个变量能接受的运算
声明变量时,编译程序会在内存里开辟一块足以容纳此变量的内存空间给它。不管变量值如何变化,它的存储空间不会变化。
2.变量命名
骆驼命名法:包名:xxxyyy_zzz;
类名:XxxYyyZzz;
变量名、方法名:xxxYyyZzz;
常量名:XXX_YYY_ZZZ
在符合命名规则的前提之下,使用“见名知意”的命名方法
例如:当规定一个长度,厚度的变量时
int length;//声明变量代表长度
int width;//声明变量代表厚度
3.变量设置
(1)声明变量时设置
(2)声明后再设置
(3)在程序的任何位置声明并设置
4.变量的作用范围
1.成员变量
在类体中定义的变量为成员变量。作用于整个类中。
2.局部变量
在一个函数(或称方法)或函数内代码块中定义的变量称为局部变量
其生命周期仅在该代码块中
/**
* @author 86152
*变量的作用范围
*/
public class demo {
static int num1=0;
public static void main(String args[])
{
int num2=1;
for(int i=0;i<2;i++)
{
num2++;
}
System.out.println("num="+num2);
test(num1);
}
public static void test(int n)
{
for(int i=0;i<2;i++)
{
n++;
}
System.out.println("num="+n);
}
深入理解
JAVA中作用范围是禁止嵌套的
每对大括号之间是一个独立的作用域
内嵌套的同名变量覆盖外嵌套的同命变量在JAVA中不可以
下面的代码就是非法的,是无法运行的
/**
* @author 86152
*深入理解
*/
public class demo {
public static void main(String args[])
{
int num=1;
for(int i=0;i<2;i++)
{
int num=0;
num++;
}
System.out.println("num="+num);
}
}
JAVA中类与方法中变量作用域可以嵌套
/**
* @author 86152
*深入理解
*/
public class demo {
static int num=0;
public static void main(String args[])
{
int num=1;
for(int i=0;i<2;i++)
{
num++;
}
System.out.println("num="+num);
}
}
认识数据类型
基本数据类型 | 符号 | 占用内存 |
---|---|---|
布尔 | boolen | 1bit |
字节 | byte | 1byte |
整型 | int | 4byte |
长整型 | long | 8byte |
短整型 | short | 2byte |
浮点型 | float | 4byte |
双精度浮点型 | double | 8byte |
字符型 | char | 2byte |
引用数据类型 | 符号 |
---|---|
字符串型 | string |
类 | class |
接口 | interface |
数组 | array |
/**
* @author 86152
*数据类型
*/
public class demo {
public static void main(String args[])
{
byte byte_max=Byte.MAX_VALUE;
short short_max=Short.MAX_VALUE;
int int_max=Integer.MAX_VALUE;
long long_max=Long.MAX_VALUE;
System.out.println("byte_max="+ byte_max +"\n"+ "short_max="+short_max
+"\n"+"int_max="+int_max+"\n"+"long_max="+long_max);
}
}
Boolean:
1单独定义:Boolean flag=true; 4个字节
2 数组类型:Boolean[] flag;每一个占1个位
char = 字符(‘a’,’中’),字节
//基本类型,整型
byte b1=20;
short s1= 50;
int i1=21; //常用
long l1=30L;
byte b2=20;
int b3=b1+20; //20+20; 整型的运算:byte或short运算,结果是int
//基本类型,浮点型
float f1=325.56F; //默认浮点型是double类型
double d1=3.1415; //常用
//非数值
char c1='a'; //字符类型只能存一个,必须是单引号 ,a=97
char c2='张'; //中文也是一个,张=?
System.out.println(c1+","+(int)c1); //char==int
System.out.println(c2+","+(int)c2); //编码表 张,24352=utf-8
//引用
String name="张三";
类型转换
不能对boolean类型进行类型转换。
两种类型要兼容,数值类型(整型和浮点型)互相兼容。
目标类型大于源类型
如果有一个操作数为double型,则整个表达式可提升为double型。
double=float, long=int=short=byte;
byte和short类型的运算会转为int类型。
//数值类型(整型和浮点型)互相兼容,类型转换
int aa1=b1;
double dd1=aa1; //自动转换小到达
int aa2=(int)dd1; //强制类型转换
//int aa3=(int)name; //不互相兼容: 数值与字符
int cc1=97;
System.out.println((char)(cc1+1)); //强制转换丢失精确度 9.00—001 =9
double dd2 = i1+d1; //运算的转换,操作数类型最大的作为结果类型
byte bb1=100;
深入理解
###进阶理解
1.x+y的“+”号是运算符,结果为13,13+“K”的“+”号是连接符,结果为13K
2.6+6是运算符,结果为12,12+“a”为连接符,结果为12a,12a+6为连接符,结果为12a6,同理为12a66
3.因为println只对字符串敏感,所以最后一个是10+3+75=88
/**
* @author 86152
*进阶
*/
public class demo {
public static void main(String args[])
{
int y=10;
int x=3;
System.out.println(x+y+"K");
System.out.println(6+6+"K"+6+6);
System.out.println(x+y+'K');
}
}
结果为:
认识类(class)
类是一种用户自定义的类型,所有的JAVA程序都是由类组成的。
public class demo
{
...
}
JAVA的访问权限:
1.default(默认模式)
2.private(私有)
3.public(公有)
4.protected(保护)
JAVA程序的文件名不能随便命名,必须和public类名称一样(包括大小写)
因此,在一个独立的源码程序中,只能有一个public类,却可以有许多non-public(非公有)类。如果一个JAVA程序中没有一个类是public,那么该JAVA程序的文件名就可以随意命名了。
输入与输出
输入和输出是指程序和外部设备或其他计算机进行交互
JAVA语言系统预设的三个流对象
1.system.in:键盘输入
2.system.out:终端显示器
3.system.err:将错误信息输出到终端显示器
错误
语法错误
语意错误
例如:测试用例
1 float f=3.14;//错误
2 float f=(float)3.14;//正确
3 float f=3.14f;//正确
4 float f=3.14F;//正确