笔记之_Java基础整理

计算机 运算能力(CPU)  硅 存储能力(硬盘)
1. 人类  逻辑
2. 计算机  机器码(001100101010)         低层语言(100)
中间语言(易语言  c/c++)    高级语言(c#  java)
人  请输出 你好   .net  php java c c++ c# vb .,......
3. Java语言的组成
Java se  桌面应用开发
Java ee  企业级应用开发 web 网站
Java me  手机 平板 等移动端项目开发
JDK:Java程序的开发环境, Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序
JRE: 运行时,包括jar包,jvm。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库
JVM:及时编译器,虚拟机
6. 开发步骤
a)    编写
i.    创建一个后缀名为.java的源文件
b)    编译
i.    下载jdk 版本 建议使用1.7.x  1.8.x   对应计算机的 32/64
ii.    安装  (检查jdk/bin/ 是否 包含 java.exe 和 javac.exe两个执行命令)
iii.    配置  鼠标右键点击计算机-->属性-->更改设置-->高级-->环境变量
1.    变量1    名字:JAVA_HOME   值:找到安装的jdk的路径
2.    变量2    名字:path       值:找到安装的jdk中 bin的目录路径
Iv. 在cmd 操作跳转到源文件所在文件夹   使用    javac  文件完整名 进行编译 编译后 得到一个 后缀名为.class的机器码可执行文件
c)    运行
i.    在dos操作命令下  对应.class文件的路径中

Warning   警告   不影响编译和运行  可以优化
Error   语法错误  编译期  无法获得.class文件
Exception  异常   运行期

Dos命令   windows-->爸爸(dos)  
1. 运行
2. 盘符跳转指令   盘符名称:  回车
3. 文件夹跳转指令    cd 文件夹名称   
cd ..返回上一级目录
cd /  返回盘符目录
4. 查看当前目录中的文件   dir
5. 清屏  cls
注:程序中对于中文和英文 采用的是不同的编码方式   
中文编码:gbk/gb2312   张
英文:  iso-8859-1
国际编码:utf-8
   d)  除了字符串(文本信息)  特殊的内容
       转义符:(\)放在””中,可以对下一个字符内容进行打印效果的转换
\n  换行符
\t   制表位  产生8个英文字符空格的缩进
  E)  代码注释 (规范)
对真实代码的解释语句 不参与编译和运行
  单行注释  //
  多行注释  /*
                 *
 */
    文档注释:/**
                *@author作者
                *@param参数
                *@return 返回值
                */
2.  交互
a)    输出       打印语句
b)    接收输入   暂缓
c)    保存数据   坏道:逻辑坏道 物理坏道 
3.内存
a)    内存  ==   酒店
b)    存储单元(类型)==  房间(类型)
c)    数据== 租客
  变量使用的三步骤   先声明  再赋值  后使用
数据类型
数值
整型
byte  字节类型 只能存 0 或者 1
Short    
int  最大值 为232  -1
long
小数
float:单精度浮点数,赋值时数值后加f  
double:双精度浮点数
非数值
字符
char:为变量赋值时将数据写在’’中;并且char可以仅仅可以用于加减运算,将数据转换为ASCII后进行运算的
字符串
String:为变量赋值时将数据写在””中
    String str=”abc”;
其中字符串”abc”存放在字符串池中
变量名str开辟一个空间存放字符串地址
                用于接受的字符串也是强制开辟的空间
new:引用数据类型的标志,强制开辟内存空间










接收用户从控制台进行的输入:
1. 向系统借工具:import java.util.Scanner;
2. 申请使用工具 并为工具取个别名:Scanner input=new Scanner(System.in);
3. 具体使用:int num=input.nextInt();
或char si=input.next().charAt(0);表示取出第一个字节

系统答应随机数:
1. 向系统借工具:import java.util.Random;
2. 申请使用工具 :并为工具取个别名:Random ran=new Random();
3. 具体使用:int num=ran.nextInt(9)+1;    表示从1-9中随机产生一个数
按照固定格式输出系统当前时间:
1. 向系统借工具:import java.util.Date;    import java.text.SimpleDateFormat
2.申请使用工具 :并为工具取个别名: Date da=new Date();
3.设置时间格式:SimpleDateFormat fo=new SimpleDateFormat(“yyyy-MM-dd hh:mm.ss.SSS”);
4.具体使用:System.out.println(fo.format(da));
5.闰年计算:year%4==0&&year%100!=0||year%400==0;

拆分字符串并转换
1. 向系统借工具:import java.util.Scanner;
2. 申请使用工具 并为工具取个别名:Scanner input=new Scanner(System.in);
3. 具体使用:String date=input.next();
4.拆分操作:String[] strs=date.split(“ -”);
5.将拆分的字符转换为整型:int year=Integer.parseInt(strs[0]);
int mouth=Integer.parseInt(strs[1]);
int day=Integer.parseInt(strs[2]);
    JDK1.8之后版本做字符串拆分时,第一个是空格,不能转换为int,要跳过
保留小数点后小数位数:
1.向系统借工具:import java.text.DecimalFormat;
2.申请使用工具,并为工具取个别名: DecimalFormat df= new DecimalFormat(######0.00);(这种格式是保留后两位)
3.具体使用:df.format(3.333333)
数组排序:
1.向系统借工具:import java.util.Arrays;
2. 具体使用:Arrays.sort(数组名);升序
只能对数值类型排序
.compareTo.():字符串比较,逐个比较,长度越长,值越大,比较的是ASCLL码值
try { }catch(Exception ex){  }异常处理





变量声明时 需要遵循java的既定规则和规范(变量名)
规则1   首字符字母  _  $ 
其它字符 字母 _  $  数字
规则2  关键字:publicstatic、void等
        保留字:nulltrue、goto等
变量名不得与系统关键字冲突

规范1. Java中的变量命名时遵循驼峰命名法 (Camel) :首单词的第一个字符小写,以后每个单词首字符大写,其它小写
规范2.java中声明的变量名要有一定的意义 :  学生年龄 stuAge ,教师名称teaName

范围:byte<short<int<long<float<double
数据类型转换:
    自动转换:由低到高,数据类型要兼容;
    强制转换:会损失精度;语法:int temp=(short)30.33;
整数:除10去末位、模10取末位
数值与非数值的区别:能否做算术运算
整型与非整型的区别:是否有小数点


运算符:
    算术运算符:+、-、*、/、%+”有两种意义:符号两边都是数值类型的数据 ,则代表加法运算符
符号一边甚至两边出现字符串 ,则代表连接符
        “%”:只和整型搭配
    关系运算符:>、<、>=、<=、==、!=
    逻辑运算符:&&、||、!、&、|
        ||和|区别:||的前一个条件成立能决定结果,则不执行后一个条件
                    |的前一个条件成立能决定结果,依然执行后一个条件
        &&和&的区别同上、
boolean值:是关系运算逻辑运算的结果

优先级:
    最高优先级:小括号()
    最低优先级:赋值运算符=
其他优先级:!>算术运算符>关系运算符>&&>||

自增和自减与其他运算符的优先级视符号位置而定:
    ++i>1:先自增后比较
    i++>:先比较后自增
    自增1:num++或者++num
    自增任意数:num+=5
比较:
equals:比较字符串内容,比较区分大小写
        用法:s1.equals(“baiyun”)
    ==:比较的是内存地址
    equalsIgnoreCase 比较字符内容,并且不区分大小写


条件语句:
if条件:if(条件){  };if(条件){  }else{ }
    其中else依赖于if存在
    if中的条件应先写参数,后写数字【if(i>3){}】,否则会出错【if(3<i){}】
if中的条件如果遇到大于等于和小于等于应先写>或<,后写等号【if(i>=3){}】,否则会出错【if(i=>3){}】
多重if:if(条件1){    }else if(条件2){    }else if(条件3){   }else{其他条件执行的语句 }
嵌套if:if(条件1){
if(条件2){
}else{   }            }
else{
if(条件2){
}else{   }       
}
switch选择:
    switch(String、byteshortintchar){
        case 对应值:
            操作语句;
            break;
case 对应值:
            操作语句;
            break;
    default:
            操作语句;
            Break;
        }
循环结构:用来解决重复操作
        循环条件:一定有变量存在;变量在循环外声明
                起点(循环变量赋初值)
                改变量(循环变量改变)
                终点(循环条件表达式)
        循环操作:改变变量
循环: 
    while(){  }:先判断后执行,至少执行0次,用于次数不固定的循环
do{}while():先执行后判断,至少执行1次,循环体外声明,循环体内赋值,用于次数不固定的循环
for(){}:先判断后执行,用于循环次数明确的循环,小括号中的两个分号必须存在,表达式可以缺省,最后一个表达式可以用i+=2
for小括号中变量赋初值时可以有两个变量,但循环变量改变时,两个变量也应该参与
    for循环句中循环条件可以省略,但是不能造成死循环。

打标记:
1.    定义一个boolean值:boolean boo=true;
2.    在需要的地方改变boolean值:boo=fals;
3.    判断操作使用标记




数组:
1.声明数组:int[] a;
    2.分配空间:a=new int[5];   默认分配缺省值
    3.赋值:a[0]=8;
    4.处理数据:a[0]=a[0]*10;
int[]缺省值为0 
double[]缺省值为0.0 
char[]缺省值为空字符
String[]缺省值为null 
boolean[]缺省值为false
声明数组的方式:
    1.int[] i=new int[5];
    int[0]=5;
    2.int[] i={1,2,3,4,5};
    3.int[] i=new int[]{1,2,3,4,5};
变量保存数的弊端是数量有限
数组保存数据数量可以控制,长度固定不变,不灵活类型明确且一致

改变原有数组大小:
    int[] num=new int[5];
    num =new int[6];
    num储存第一个元素地址
    以上方法原有数据会丢失
数据常见操作:增、删、改、查
备份数组数据:
    int[] temp=scores;将原数组的地址赋给一个新声明的变量
冒泡排序:
    N个数字来排序,两两相较小靠前
    外层循环N-1,内层循环N-1-i
Java数据类型:
    基本数据类型(9):存值,shortintlongchar、flaot、doublebyteenumboolean
    引用数据类型(无数):存地址型,String
enum:枚举,将取值类型和取值范围列举出来,以供选择




字符串空间
    堆
    栈
    方法池
    常量池
静态池
字符串池:不可改变性,可回收,可新建


注意点:
System.out.println()和System.out.print()的区别:
前者,输出后换行;后者,输出后不换行;
    后者()内必须要有内容,不然就是一句没有用途的废话;
    前者即使()内没有内容,此语句也有一个换行的操作。
public修饰的类必须与文件名同名
主函数main没有返回值,所以要加void    
“.”前面一般是类,类的首字母要大写
代码块每段语句结束必须使用;
对于要输出打印的数据必须用””包含内容
变量:
必须遵循三步骤:先声明、再赋值、后使用。
变量命名可以使用:字母  _  $,除首字母外还可以用数字
变量名不能重复
int不可以自动转换成char型
switch语句:
每个case语句结束时要加break;否则会出现贯穿效果,后面的输出语句会被执行;
并且case后的常量不能重复;default一般放在case后,可以省略;
switch后面的小括号中表达的值必须是整型(intbytecharshort)JDK1.8之后加入了字符型(String);
default:出现的位置不限制,运用switch贯穿效果的时候要调整位置

计算机同时只能处理一个类型的完整表达式
命名:
    Java包的名字由小写单词组成;无特殊字符,“.”可用但不能出现在开始和结束
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词
变量的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证变量名称为一个单词的情况下使变量的命名尽可能有意义
while循环小括号中存在 int i;  i++>0的情况是先判断,操作完成后再自增
continue只能用在循环中,跳过循环体中后面的语句,执行下一次循环
break跳出循环体执行之后的语句;switch和循环中使用
return 立即终止程序,不在执行任何代码
package:包的声明
import 导包
if(num%==0)
    System.out.println(“偶数”);
else
    System.out.println(“奇数”);
        当内部只有一个语句的时候可以使用,省略{ }
三元运算:int num=2>1?10:20替代if-else
变量名:内存地址的别名,避免了地址的难记
变量名无法和循环整合使用;数组名可以和循环名整合使用
null代表空地址
Objiect[] obj=new Object[5];所有的数据都可以装,类型越是泛化,功能越强大,使用越是麻烦
.length取得数据长度,数值的length是属性,字符串的length()是方法,字符串数组用.length
gc:垃圾回收机制,具有滞后性和时效性
Java中必须用public声明类,并且Java类中不是必须要有main()方法的
Finalize():垃圾回收机制,强制释放空间继承自Object类,释放对象资源

 

posted @ 2017-11-19 16:28  莫轩ASL  阅读(288)  评论(0编辑  收藏  举报