JAVA基础(一)java语言基础

java:1995年5月。詹姆斯·高斯林推出

语言特点

1.面向对象
2.多线程
3.跨平台。依靠JVM。

JAVA SE 标准版
JAVA EE 企业级开发
JAVA ME 嵌入式开发

JDK:java开发工具包。java核心,包含了JRE和许多类库。(Java Development)
JRE:Java运行环境,包含JVM。
JVM:java虚拟机。解析字节码文件(.class文件),发送指令给cpu,执行代码。

CMD:pushd 路径:切换到对应目录

包名规范:
1.域名倒置。例如:www.baidu.com。域名倒置com.baidu.项目名称.模块名字
2.全小写。

一:JDK配置

1.去下载相应的jdk
2.在自己的电脑中配置jkd 目的==》在电脑中的任意一个位置 都可以使用java相应的命令
如果没有配置,只能在bin目录下执行命令
2.1:找到jdk的安装位置下的bin目录 赋值路径
2.2:右键点击电脑==》属性===》高级系统设置===》设置环境变量
2.3:在系统变量中找到Path名称 之后 编辑
2.4:把 2.1中赋值的路径 放进去 即可
3.win+r 输入 cmd
4.在命令行窗口输入 java / java -version
5.能出现对应的信息 说明 配置成功


命名法:

1.驼峰命名法:myName myFirstName
首字母小写,有意思的单词大写,常用于变量名命名
2.帕斯卡命名法:HelloWorld
所有有意义的单词首字母全部大写

数据类型:
1.8种基本数据类型
2.引用数据类型


Shift+Alt+A 选中区域一起添加相同的代码
Ctrl+Shift+x 选中字符大写
Ctrl+Shift+y 选中字符小写
1.变量:
一个数据在内存中存储空间的表示!在程序运行期间可能发生变化。
变量名:
可以迅速的从内存中获取想得到的对象。
变量使用:
先声明再赋值或者声明变量同时赋值。
局部变量必须先赋值再使用。
成员变量声明会有默认值。boolean默认为false char默认为’\u0000’是一个空串。String默认为null是一个空值。要使用必须添加静态修饰符static。

2.变量的命名规范:

1)驼峰命名法。myName、myFirst
2)首字母不能以数字开头
3)可以使用的特殊字符:_   $  ¥
4)不能使用关键字和保留字(goto  const)
5)变量名要有意义

3.数据类型:数据在内存中的类型称为数据类型。

4.数据类型的分类:

1)基本数据类型:
JAVA有8种基本数据类型
   数值类型:
       整形:
         byte    字节     1byte=8bit     取值范围-128——127
         short   短整型   2byte=16bit    取值范围-32768——32767
         int     整形     4byte=32bit    取值范围-2的31次方——2的31次方-1
         long    长整型   8byte=64bit    取值范围-2的63次方——2的63次方-1
       浮点型:
         float   单精度   4byte=32bit    
         double  双精度   8byte=64bit 
       布尔型:
         boolean 布尔值   true或false    底层为0或1
       字符型:
         char    字符     一个字母'a'、符号'+'、汉字'大'  取值范围0——65535
2)引用数据类型:
        除了8种基本数据类型之外都是引用数据类型。
        String: 
        String是一个类,底层是一个char类型的数组。

5.基本数据类型转换:
自动类型转换:byte→short(char)→int→long→float→double
强制类型转换:double→float→long→int→short(char)→byte。会引起数据丢失。
double→float时可以强转,也可以直接在数值后加上f或者F即可。

6.运算符:

 算术运算符: 
        一元运算符:++  --   
        ++、--在前变量自身先+1、-1,再运算;++、--在后变量自身先运算,再+1、-1;    

        int a=5;        
        int b=++a;//b=6,a=6         
        System.out.println(a++);//a=6;输出6 
        System.out.println(++b+a);//a=7;b=7;输出14 

        二元运算符:+  -  *  /  %     

        三元运算符:条件 ?成立时:不成立时 

            分页查询: int  counts=120;      
                     int  pageSize=11;      
                     int   pageCount= (counts%pageSize)==0?(counts/pageSize):(counts/pageSize+1);

    赋值运算符:=  等号右边的值给等号左边。

    比较运算符:==  基本数据类型比较的是值;引用数据类型比较的是内存地址。
              double a=5;       
              int b=2;      
              b+=a;//输出7。对于 += 会自动强制类型转换。       
              b=b+a;//编译报错。必须手动强制转换:b=(int)(b+a)

7.常量:程序运行期间不允许变化的量。在数据类型前加上final即可

1)常量一般是在声明的时候赋值,之后不允许改变。
2)常量必须全部大写。
3)常量由多个有意义的单词组成,则必须以_分隔。

API:(Application Programming Interface ) 应用程序编程接口。

在java语言中,所有的java.lang包中的接口和类在使用中不需要显式的导入。
其他所有的包中的所有的类和接口必须显式的导入。
导入关键字:import

Scanner(扫描仪)的使用:
1.Scanner不位于java.lang包中,必须显式的导入。import java.util.; 表示在util包中所有的类在本类中都能使用。
2.创建Scanner对象,Scanner input=new Scanner(System.in);
System.in是一个输入流。

输入流:在某个程序中存入内存中的形式称为输入流。
输出流:从内存中输出的形式称为输出流。
这里写图片描述

内存中的堆和栈:
Scanner input=new Scanner(System.in);

此操作在栈中是开辟空间,存储input;同时在堆中存放new Scanner(System.in);

String name=input.next();

此操作在栈中开辟String类型的空间,存放输入流输入的name的值;同时在堆中存放input.next();

Scanner中hasNextInt()的使用:

接收输入流并判断输入流是否与方法的返回值与Int是否匹配;并且返回布尔值。

逻辑运算符与选择结构:

选择结构:
由于三元运算符一次只能判断两个条件的弊端,所以要使用if来判断很多条件的情况。

if(布尔值的表达式1){
            如果满足表达式1   执行的代码;
        }else    if(布尔值的表达式2){
            如果满足表达式2 执行的代码;
        }else if(布尔值的表达式n){
             ··············
        }else{
            所有表达式都不满足  执行的代码;
        }

注意:如果满足任意表达式之后,则不会进入其他的表达式。
如果代码块中只有一条语句,{ }可以省略。但会降低代码可读性。了解即可。

逻辑运算符:

&& 短路与(并且)
两个表达式都为true,整体返回true。
表达式1为true,表达式2为true才 整体返回true。
表达式1为false,将不会执行表达式2,直接返回false 。
| | 短路或(或)
两个表达式有一个为true 整体返回true,不会继续判断表打式2。
表达式1位false,表达式2为false才整体返回false。
两个表达式都为false,才整体返回fasle。
! 非(取反)

        int  num1=5;
        int num2=6;
        if(++num1==num2&&num1++!=num2){   
            //num1=6;num2=6;表达式1为true;先判断表达式2为false,会执行else之间的代码段。num1再加1.
            System.out.println("表达式整体为true");
            System.out.println(num1);
            System.out.println(num2);
        }else{
            System.out.println("表达式整体为fasle");
            System.out.println(num1);           //num1=6
            System.out.println(num2);           //num2=7
        }

switch选择结构

switchswitch(表达式){
        case 常量1:
            代码1break;
        ..........
        case  常量2:
            代码2breakdefault:
            代码;
            break;
    }

注意:
(1).做等值判断时,由于性能问题。首选switch。
(2).表达式的取值类型:byte short int char String(jdk1.7+) Enum(枚举)
(3).由n个case代码块和一个default代码块组成,break可以不写,但会出现逻辑问题。
(4).default代码块在所有case块不满足的情况下执行;可有可无,通常放在最后。
(5).选择结构开始,直到遇到第一个break时,跳出循环,否则一直执行到程序结束。
(6).break表示只能跳出当前循环,switch可以嵌套。注意只能跳出当前循环。
return表示跳出当前方法。


Scanner类的nextLine()方法。切换下一行。清空当前输入值。

循环:

whille循环:
    while( 循环条件){
        循环体(循环操作);
    }
    先判断条件。如果满足,则进入循环体。

do.....while循环
    do{
        循环体(循环操作);
    }(循环条件);
    先执行循环题,之后再判断条件。
注意:
布尔的默认值为false;但是在循环语句中的条件判断时,Boolean值的默认值为true。
    boolean flag;   //定义标记flag默认值为false。
    do{
        System.out.println("您好");
    }while(!flag);//   !flag等同于flag==false

Date:

java.util.Date
日期类:
Date    date =new       Date();     //创建当前日期
java.text.SimpleDateFormat
日期格式转换类:
SimpleDateFormat    sdf=new SimpleDateFormat("yyyy-MM-dd    hh:mm:ss");     //格式化当前日期
把日期转换成字符串
String      time=sdf.format(date);  //把日期转化为指定格式
把字符串转换为日期
String      sourceDate="2017-11-22      08:02:10";
date=sdf.parse(sourceDate);

for:

用于循环次数固定的情况下。
    for(表达式1;表达式2;表达式3){
            循环体;
    }
    表达式1:初始化循环变量,只执行一次。
    表达式2:循环条件。只有满足循环条件才能执行循环体操作。
    表达式3:迭代变量。
注意点:
    1.如果for循环只有一句话可以省略大括号。
    2.3个表达式都可以省略,但分号不能少。
    3.for循环执行顺序:表达式1-->表达式2-->循环体4-->表达式3-->·····表达式2-->循环体4-->表达式3-->······
                练习:
                不用数组循环接收5位同学成绩,一次性输出。
                public static void main(String[] args) {
                String result="";
                Scanner input=new Scanner(System.in);
                for(int i=1;i<=5;i++){
                    System.out.println("请输入第"+i+"个学生成绩");
                     int grade=input.nextInt(); 
                     result+="第"+i+"名的成绩是:"+grade+"\n";
                }
                System.out.println("========所有学生成绩===========");
                System.out.println(result);
                }
                接收一堆数,倒序输出
                public static void main(String[] args) {
                Scanner  input=new Scanner(System.in);
                System.out.println("请输入一组整数:");
                int  num=input.nextInt();
                int result=0;
                while(num!=0){
                    result=num%10;
                    System.out.print(result);
                    num=num/10;
                }
                }

break能用在循环语句和选择结构
continue只能用在循环语句
return能用在任何方法


数组 :

  1.在内存中存储一组相同数据类型的集合。
 2.数组会在内存中开辟一串连续的数据空间保存数据。
 3.数组长度一旦被改变,不能被改变。
 4.数组下标的最大值等于数组长度-1。

数组中的概念:

**定义数组:**
    (1).
    int [] nums;            //声明一个数组
    nums=new int[5];        //在堆中开辟了5个空间
    nums[0]=50;         //给数组中的第一个位置赋值
    其他的4个空间位置赋默认值为0
    (2).
    int [] nums ={1,2,3,4,5};//声明数组同时开辟长度同时赋值。

    int [] nums ;//错误
    nums ={1,2,3,4,5};   //错误
    //编译错误。不能先声明数组,然后开辟空间在赋值。

数组基本要素:
    数组名     标识符。
    数组元素        数组中真实存放的数据。
    元素下标        对数组元素进行的编号,从0开始。
    元素类型        数组中每个元素的数据类型,元素类型必须相同。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值