【Java语言】基础知识一

时间:2021-11-11 20:02:38

¥···每天进步一点点,每天快乐一点点!坚持每天写点东西,感觉很好,既复习基础知识,又可以收获成就感,何乐而不为呢?···¥

下面的内容是以前学习java时候课堂上做的小笔记,发表到博客中纯属为了保存^_^

一、基础知识

1. 程序

2. 设计语言:c,java,c++,c#,html,actionscript,j2ee
3. java--->j2se,j2ee,j2me
4. java语言特点:

   1> 跨平台型:一次编译,到处运行 ---这个是java语言的最大特性
   2> 自动管理内存(垃圾回收器)   
   3> java是一种什么样的语言P5
   4> java语言的关键特性:简洁有效、可移植性、面向对象、解释型、适合分布式计算、
5. 安装JDK----JAVA开发工具包  配置开发环境:检测是否配置成功的方法是-->运行-->cmd-->javac -version
6. 运行--》cmd--> javac,java   javac Hello.java  再是java Hello
    javac.exe是语言编辑器 *.class 是二进制字节码文件   *.java 源程序文件
7. javac ---> 编译-->  编译成功后会产生以.class结尾的(二进制字节码文件)文件名
    java  ---> 运行--> JVM 

   1> 什么是java虚拟机:可运行假想代码的java计算机  
   2> 作用:保证编译过的java代码能在java虚拟机的系统上运行。  

8. 类名--标识符命名规则(包、类、方法、参数和变量的名字):可有任意的大小写字母、数字、下划线_和美元符号$等组成,
                                                          但标识符不能以数字开头,不能使java中保留关键字。
9. main  方法是程序入口   ,定义是固定的
    public static void main(String arg[]){}
10. 计算机功能---〉数据处理--〉数据存放到内存
   ---〉常量,变量 
   ---〉定义和声明(分配内存空间):通过数据类型和名字
   ---〉赋值  (给所分配的内存放数据)
   ---〉使用数据(引用):通过名字

   常量:经过第一次赋值后(初始化),不允许在改变值
   变量:程序运行过程中,可以根据需求改变值
   由于变量也是一种标识符,所以遵循标识符的命名规则。
   变量按作用划分为成员变量和局部变量。

   常量定义和声明  >>>>>>>>>>>    类的里边,方法的外边 

   变量定义和声明:
   1. 类的里边,方法的外边--成员变量--》作用域在类里边均可以使用 
   2. 方法的里边--局部变量--》作用域在方法里边 
11. 数据类型---作用:告诉系统分配多大的内存空间
      两大类数据类型---基本数据类型和引用型
      基本数据类型包括:数值型(整型、浮点型)、布尔型、字符型
      引用数据类型:类、接口、数组、字符串。

整型:0byte ,short ,int ,long
           int a1 = 15;  //十进制     int a2 = 015; //八进制        int a3 = 0x15; //十六进制
浮点型: float,double        float f1  = 1.4f;      ***注意单精度型必须注明。      double d1 = 23.45;
字符型:char
布尔型:ture ,false

  数据进行计算时(主要为赋值运算,+,-,*,/)要求数据“类型必须一致”。运算出来出来的结果也这种数据类型。
  赋值运算:低的数据类型赋给高的数据类型,可以自动转换-->低变为高
  +,-,*,/:如果操作数类型不一致,那肯定会自动转换——》低变为高

 自动转换的原则
  运算过程中低的数据类型会自动转换成高的数据类型(从低到高)
  byte-->short--->int-->long-->float-->double 或是 char-->int-->long-->float-->double

案例说明:

public static void main(String[] args) {
int a,result1;
float b,result2;
a = 1;
b = 5.0f;
result1 = (int)(a + b); //6 进行强制转换
result2 = a + b; //6.0 int会自动转换为较高的float
System.out.println("result1 = " + result1);
System.out.println("result2 = " + result2+"\n");

result2 = a/2 + b/2; //0+ 5.0f/2.0f-->0+2.5f-->0.0+2.5f=2.5f
System.out.println("result2 = " + result2+"\n");

// result1 = 1.0*a/2+b/2;
double result3 = 1.0*a/2+b/2;//3.0
System.out.println("result3 = " + result3+"\n");
}
// 局部变量在使用之前必须进行初始化
----“什么是初始化”
//成员变量在使用之前可以不进行初始化,系统会自动给默认值
public class Test {
static final int c = 5; //常量
static double d = 1.0; // 成员变量
static double e;
public static void main(String[] args) { // 方法
int a = 2; // 局部变量
double b=20.0 ;
// 局部变量在使用之前必须进行初始化
// 成员变量在使用之前可以不进行初始化,系统会自动给默认值
// 常量必须初始化
e = a+d;
System.out.println("a="+a);
System.out.println("e="+e);
System.out.println("c="+c);
System.out.println("d="+d);
}
}<span style="font-family: Arial; font-size: 14px; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial; font-size: 14px; background-color: rgb(255, 255, 255);"> </span>

例子1:如果今天是星期日或星期六,则我在睡觉,否则在学习

//如果今天是星期日,则我在睡觉,否则在学习
Calendar rightNow = Calendar.getInstance();//取系统时间
int today = rightNow.get(Calendar.DAY_OF_WEEK);//1相当星期日
if(today == 1 || today == 7){
System.out.println("I am sleep!!");
}else{
System.out.println("I am study!!");
}
例子2:通过键盘输入今天是星期几,之后判断如果今天是星期日,并且没有作业,则我在睡觉,否则在学习
Scanner input = new Scanner(System.in);System.out.println("请输入今天是星期几:");int today = input.nextInt();boolean hasNoWork = true;if(today == 1 && hasNoWork){System.out.println("I am sleep!!");}else{System.out.println("I am study!!");}
例子3:if例子:输入一个三位整数,将其倒序输出, 如输入123,则输出321
import java.util.Scanner;public class Lianxi1 {public static void main(String[] args) {for(int i = 1; i <= i + 1; i++){  //用for循环的话就更好循环输入数字System.out.println("第"+i+"次输入");Scanner input = new Scanner (System.in);System.out.println("请输入要判断的整数是:");   int num = input.nextInt();if (num > 99 && num < 1000){   2. // 每一位数字取出来,保存  a-百  b-十  c-个int a = num / 100;int b = num%100 / 10;int c = num % 10;// 组合倒序数int result = c*100 + b*10 + a;System.out.println(result);} elseSystem.out.println("输入不是三位数");}}}
12.  ++(自加),--(自减)运算符   补充:

   自增自减运算符的位置有两种方式,可以放在操作数的后面也可以放在操作数的前面,分别叫做后置自增减运算符和前置自增减运算符。这两种方式对于操作数本身来说是没有区别的,都是对操作数进行加1或是减1的操作;但是在进行赋值(就是进行运算的时候)时,就会有很大的区别。
  1.后置自增运算符是先:先赋值后运算   前置自增运算符是:先运算后赋值

13. 条件运算符:?:

int x = 85;
char grade;
grade = x>80?'A':'B';
if(x>80) grade = 'A';
else grade = 'B';
14.for循环语句格式如下:
    for (赋值初值;判断条件;控制变量增减量)
    {
   语句1 ;
   ….
   语句n ;
    }
   1. ()后面不要加 ; 号 多条语句的话用{},单条语句可用可不用{}
   2. 一定要注意改变控制变量(控制变量增减量),以免出现死循环---就是无限循环。
如下边通过减量改变:
int sum = 0;
for(int i =100; i>0; i--){
sum +=i;
}
System.out.println(sum);
   3. 赋值初值进行了变量声明和在for的外边进行变量声明的区别:
    局部变量的作用范围 :如果变量是在for,或者if,else的{}
    进行声明的,《那这个局部变量的作用范围》就是在对应的for循环里边或者
    if,else的{}

15.循环语句

for循环流程如下
 ⑴ 第一次进入for循环时,为循环控制变量赋起始值。
 ⑵ 根据判断条件的内容检查是否要继续执行循环,当
    判断条件值为真(true)时,继续执行循环主体内的语
    句;判断条件值为假(false)时,则会跳出循环,
    执行其他语句。
 ⑶ 执行完循环主体内的语句后,循环控制变量会根
    据增减量的要求,更改循环控制变量的值,再回到
    步骤2重新判断是否继续执行循环 

注意:三种循环的选择原则:

   1. 如果循环的次数已经确定,可选择for.

       否则选择while,do while
   2. 在次数不确定的情况下,如果要保证至少
       执行一次循环体,则可选择do while。
   3. 三种循环中,只有do while能够保证循环体
       至少会保证执行一次,另外两种存在循环体
       不被执行的可能。
   4. 理论上任何一种循环都可以改写成其他
       两种形式的循环。但为了保持良好的编程
      风格,应该基于以上三点来选择。


 更多资料查看http://download.csdn.net/detail/haojie2014/9136647