关于java:java基础阶段复习

环境配置
JAVA_HOME:jdk的门路(jdk下载网址:http://www.oracle.com)
Path:要把jdk的目录门路,增加到path变量

java的运行工作原理
java源代码文件(.java)–>java字节码文件(.class)–>运行后果
.java–>.class:编译期(通过javac命令将java的源文件编译为字节码文件)
.class–>运行后果:运行期(先启动java虚拟机,不同的操作系统有不同的jvm,因而java跨平台,再通过JVM加载.class字节码文件,并加载main办法执行程序)

jdk jre jvm 的关系
jdk(开发工具包):Java Development Kit 是针对java开发员的产品,是整个Java的外围,包含了Java运行环境JRE,java工具和java根底类库。
jre(运行环境):Java Runtime Envirment Kit是针对运行JAVA的运行环境,蕴含JVM和java的外围类库。
jvm(Java虚拟机):java Virtual Machine,java虚拟机的缩写,是整个java实现跨平台的最外围的局部,可能运行以java语言写作的软件程序。
jdk有不同零碎的版本,所以jdk是跨平台的

java的一次编写,处处执行是怎么实现的?
java程序会被编译成字节码组成的class文件,这些字节码能够运行在任何平台,因而java是平台独立的.

标识符
由字母,数字,下划线(_),$组成,不能有空格和其余字符,以及不能呈现关键字.
不能由数字结尾
严格辨别大小写
见名知意

八种数据根本类型
byte(1),short(2),int(4),long(8),float(4),double(8),char(2),boolean(1)

练习1(输出个人信息):
public class Test1{
    public static void main(String[] args){
    System.out.println("姓名:");
    String name = new Scanner(System.in).nextLine();
    
    System.out.println("性别:");
    String sex = new Scanner(System.in).nextLine();
    
    System.out.println("年纪:");
    int age = new Scanner(System.in).nextInt();
    
    System.out.println("您输出的个人信息是:");
    System.out.println("姓名:");
    System.out.println("性别:");
    System.out.println("年纪:");
    }
}
练习2(圆的面积):
public class Test2{
   System.out.println("请输出圆的半径:");
   double r = new Scanner(System.in).nextDouble();
   System.out.println(3.14*r*r);
}
练习3(变量的替换):
public class Test3{
    System.out.println("请输出变量a:");
    int a = new Scanner(System.in).nextInt();
    
    System.out.println("请输出变量b:");
    int b = new Scanner(System.in).nextInt();
    
    int t = a;
    a = b;
    b = t;
    System.out.println(a);
    System.out.println(b);
}

援用类型
援用类型是一个对象类型,其值是指向内存空间的援用,就是地址.

根本类型字面值规定
整数字面值是int(4)类型,如果值超出int范畴,则须要做转型解决.
byte(1),short(2),char(2)三种比int小的整数,在本身范畴内能够间接赋值.
浮点数字面值时double;浮点数转成整数会间接舍弃小数点后6位.
字面值后缀:L,D,F
字面值前缀:二进制(0b);16进制(0x);8进制(0);char类型16进制(u

根本类型的类型转换
计算结果的类型与运算中的最大类型保持一致
byte(1),short(2),char(2)三种比int小的整数,计算时会主动转为int.
有long类型时,都会转为long类型.
char类型相加,晋升为int类型.
整数运算溢出:能够增加后缀;
浮点数运算不准确的解决办法:
1.间接去除整数;
2.四舍五入(Math.round());
3.向上取整(Math.floor());
4.向下取整(Math.ceil());
5.StringBuffer,StringBuilder

根本类型之间的转换
数字类型之间能够相互转换,从小到大主动转换,从大到小须要强制转型.
byte–>short–>int–>long
char–>int
int–>float/double/long

小转大:隐式转换
int a = 9;
long b = a;
大转小:显式转换
int x = 10;
byte b =(byte)x;

运算符
&:短路与,a&b,a与b同时为真时后果才为真,有一个为false均为false.不论右边是什么后果都要继续执行左边
&&:逻辑与,有一个为假即为假,不再持续判断,右边是假,左边疏忽不执行.直接判断为真
|:短路或,a|b,a与b中有一个为真即为真,不论右边是什么后果都要继续执行左边.
||:逻辑或,有一个为真即为真即为真,不再持续判断.右边是真,左边疏忽不执行,直接判断为真.

流程管制
switch:jdk1.7之前只能判断byte,short,char,int,之后能够判断string.从成立的case无条件的穿透所有的case包含default直到完结,或者是遇到break,如果所有的条件都不成立的话就执行case.

switch(变量或表达式){
case1:
case2:
case3:
default;
}
练习1:数字匹配
public class Test{
public static void main(String[] args){
    int i = 3;
    switch(i){
          case1:
          System.out.println("1");
          break;
          case2:
          System.out.println("2");
          break;
          case3:
          System.out.println("3");
          break;
          default:
          System.out.println("default");
        }
    }
}
break:中 断,跳出循环
countine:完结本轮循环进入下一轮循环

for循环:

for(变量赋值;执行条件;变量批改){
    代码
}
练习1:打印正方形
for(int i = 1;i<5;i++){
    for(int j=1l;j<5;j++){
    System.out.println("*");
    }
    System.out.println();
}
练习2:打印倒三角
for(int i = 5;i>1;i--){
    for(int j = 0;j<i;j++){
    System.out.print("*");
    }
    System.out.print();
}
练习3:打印99乘法表
public class Test3{
    public static void main(String[] args){
    test();
    }
    private static void test(){
    for(int i = 1;i<=9;i++){
        for(int j=1;j<=i;j++){
        System.out.println(i+"*"+j+"="+i*j+" ");
           }
        System.out.println();
        }
    }
}

if分支

单分支:
if(判断条件){
代码 
  }
多分支:
if(判断条件){
    代码1
  }else{
   代码2
    }
嵌套分支:
if(判断条件1){
  代码1
}else if(判断条件2){
  代码2
}else if{判断条件3}{
  代码3
}else{
  代码4 
}
练习1:输出年号,判断平年平年
public class Test1{
public static void main(String[] args){
System.out.println("年号:");
int y = new Scanner(Syetem.in).nextInt();
String r = "平年";
if(y%4==0){
if(y%100!=0){
    r="平年";
    }
  }
  if(y%400==0){
  r="平年";
  }
}
练习2:商品打折
接管输出的原价,满1000打9折,满2000打8折,满5000打5折.
public class test2{
    public static void main(String[] args){
    System.out.println("输出总原价");
    double price = new Scanner(System.in).nextDouble();
    double nowprice = f(price);
    System.out.println(nowprice);
    }
    public static double f(double p){
    if(p>5000){
      p=p*0.5;
    }else if(p>2000){
      p=p*0.8;
    }else if(p>1000){
      p=p*0.9;
    }else{
      p=p;
    }
    return p;
}
练习3:统计学员得分
>90:优良
80-90:良好
70-80:中等
60-70:及格
<60:不及格
public class test3{
public static void main(String[] args){
    double score = new Scanner(System.in).nextDouble();
    if(score>=100||score<=0){
    System.out.println("请输出0-100范畴内的数");
    }
    if(score>=90 && score<=100){
    System.out.println("优良");
    }else if(score >= 80 && score<90){
    System.out.println("良好");
    }else if(score >=70 && score<80){
    System.out.println("中等");
    }else if(score >=60 && score<70){
    System.out.println("及格");
    }else if(score < 60){
    System.out.println("不及格");
      }
    }
}
练习4:产生一个随机数,和用户始终在输出的数字比拟.
public class test4{
    public static void main(String[] args){
    find();
    }
    private static void find(){
    
    int i = new Random().nextInt(100)+1;
    System.out.println("请猜1-100以内的数字:");
    int a = new Scanner(System.in).nextInt();
    while(true){
    if(a>i){
    System.out.println("猜大了");
    }else if(a<i){
    System.out.println("猜小了");
    }else{
    System.out.println("猜对了");
    break;
            }
        }
    }

}

变量
个别通过三局部来形容变量.变量类型,变量名,变量值.
变量的应用准则:就近准则.
局部变量
定义在办法里,部分代码块中,办法运行完内存就开释完了.
成员办法里
定义在类里办法外.作用域是在整个类中,类隐没了,变量才开释.

public class Test1{
int a = 9;//成员变量
    {
    int x = 8;//局部变量
    }
    public static void main(String[] args){
    int sum = 10;//局部变量
    }
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理