计算机语言和Java

计算机语言主要由一些指令(包括数字、符号和语法等)组成,可以分为机器语言、汇编语言、高级语言三大类。Java是一种高级计算机语言,是一种可以编写跨平台应用软件、完全面向对象的程序设计语言。
特点:简单,面向对象,安全(不支持指针,一切对内存的访问都必须通过对象的实例变量来实现),跨平台,支持多线程(程序中有多个任务可以并发执行)。
Java是如何运行的
程序源代码→编译器(JDK)→字节码→JVM(Java虚拟机(JRE))→机器码010010...→计算机
Java开发环境,简称JDK(Java Development Kit),它是整个Java的核心,其中包括Java编译器、Java运行工具、文档生成工具、Java打包工具等。
Java的运行环境,简称JRE(Java Runtime Environment)。现在JDK工具中自带了一个JRE。
定义标识符遵循的规则:①包名所有字母一律小写,例如cn.itcast.test②类名和接口名每个单词的首字母都要大写,例如ArrayList③常量名所有字母都大写,例如DAY_OF_MONTH④变量名和方法名的第一个单词首字母小写,之后的单词首字母大写,例如lineNumber、getNum⑤尽量使用有意义的单词来定义标识符,例如passWord表示密码,userName表示用户名。
Java中常量
①整型常量。二进制:0b或0B开头,0和1组成的数字序列,例如0b0110、0B1101。
八进制:0开头,0~7组成的数字序列,例如:0342。
十进制:0~9组成的数字序列。
十六进制:0x或0X开头,0~9、A~F组成的数字序列,例如0x25AF。
②浮点数常量。float单精度浮点数(32位)结尾F或f;double双精度浮点数(64位)结尾D或d,例如3.84e+20f(3.84*1020)
③字符常量。用单引号,例如 ‘a’ ‘1’ ‘\r’ ‘\u0000’(表示空白字符)。
④字符串常量。用双引号,例如 “HelloWorld”。
⑤bool常量。含两个值true和false。
⑥null常量。只有一个值null,表示对象的引用为空。
反斜杠(\),也称转义字符
\r 表示回车符,\n 表示换行符,\t 表示制表符,\b 表示退格符,就像键盘上的Backspace,\’ 表示单引号字符,\” 表示双引号字符,\\ 表示反斜杠字符。
注:在java控制台显示/r   /n   /r/n   这三个显示出来效果是一样的。
变量类型转换
自动类型转换也叫隐式类型转换,两种数据类型彼此兼容且目标类型的取值范围大于源类型的取值范围,例如
byte b = 3;    int x = b;
强制类型转换也叫显式类型转换,两种数据类型彼此不兼容或目标类型的取值范围小于源类型的取值范围,例如 
byte a;    int b = 298;    a = (byte)b;
【a++和++a】
int a = 1;
int b = a++;
System.out.println("a = " + a);
System.out.println("b = " + b);
运行结果
a = 2
b = 1
int a = 1;
int b = ++a;
System.out.println("a = " + a);
System.out.println("b = " + b);
运行结果
a = 2
b = 2
真值,原码,反码,补码
真值是带符号的二进制数,如-101表示-5;
原码用1代表负数,0代表正数,如真值-101的原码为10000101,因为第一位是符号位,所以8位二进制的取值范围是[11111111,01111111]。即[-127,127];
反码,正数的反码是其本身,负数的反码是在原码的基础上符号位不变,其余位取反,如真值-101=原码10000101=反码11111010;
补码,正数的补码是其本身,负数的补码是在原码的基础上符号位不变,其与各位取反,最后加1(总的来说就是反码+1),如真值-101=原码10000101=反码11111010=补码11111011
运算符
运算符^,异或,例如true^true结果为false,true^false结果为true。
运算符&&,短路与,从左往右,左侧为false时会直接输出false,右边表达式不会进行运算,例如false&&true结果为false,true&&false结果为false。
运算符&,与,两边表达式都会进行运算。
|(或)和||(短路或)用法类似于&和&&。
三目运算符 ?: 
int a,b,c;
a = 5; b = 7;
c = a<b ? a : b;
System.out.println(c);
//输出5
位运算
按位与(&),参加运算的两个数转换成二进制后进行与运算,相应位上都为1时取1,否则取0。
按位或(|),参加运算的两个数转换成二进制后进行或运算,相应位上只要有1取1,都为0时取0。
按位异或(^),参加运算的两个数转换成二进制后进行异或运算,相应位上数字不同取1,相同取0。可以看出任何数与0异或都是其本身。利用异或还可以实现一个很好的交换算法,用于交换两个数:
a = a ^ b;
b = b ^ a;
a = a ^ b;
取反(~),参加运算的两个数转换成二进制后进行取反运算,每位取反,1变0,0变1。
左移(<<),参加运算的数转换成二进制后进行左移运算,左移若干位。可以发现左移n位后结果=原值*2n。
右移(>>),参加运算的数转换成二进制后进行右移运算,右移若干位。可以发现右移n位后结果=原值/2n,值要取整。
选择结构语句
if(判断条件){执行语句}
if(判断条件){执行语句}else{执行语句}
if(判断条件){执行语句}else if(判断条件){执行语句}...else if(判断条件){执行语句}else{执行语句}
switch(表达式){case 目标值1:执行语句1 break;case 目标值2:执行语句2 break;case 目标值n:执行语句n break;}
循环语句结构
while(循环条件){执行语句}    //先判断,后执行
do{执行语句}while(循环条件);   //先执行,后判断
for(初始化表达式;循环条件;操作表达式){执行语句}
注:break,主要用在循环语句或者switch语句中,用来跳出整个语句块;continue,适用于任何循环控制结构中,是让程序立刻跳转到下一次循环的迭代。
public class Test{
    public static void main(String[] args) {
        int[] n = {1,2,3,4,5};
        for (int x : n){
            if(x == 3){
                break;
            }
            System.out.println(x);
        }
    }
}
运行结果:
1
2
public class Test{
    public static void main(String[] args) {
        int[] n = {1,2,3,4,5};
        for (int x : n){
            if(x == 3){
                continue;
            }
            System.out.println(x);
        }
    }
}
运行结果:
1
2
4
5
方法
修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名n]){
执行语句
.
.
return 返回值;
}
如果方法不需要参数,参数列表可以为空。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时方法中return可以省略。
例如:main方法中调用getNum(int x,int y)方法,需要该方法时会为x,y分配内存并传值,return结束后会将x,y释放。
①方法的重载
方法的重载与返回值类型无关,它只需要满足两个条件,一是方法名相同,二是参数个数或参数类型不相同。
示例:
public class Override {    //方法的重载
    public static void main(String[] args) {
        System.out.println(add(1,2));
        System.out.println(add(1,2,3));
        System.out.println(add(1.2,1.3));
    }
    public static int add(int a,int b){    //该方法实现两个整数相加
        return a+b;
    }
    public static int add(int a,int b,int c){   //该方法实现三个整数相加
        return a+b+c;
    }
    public static double add(double a,double b){    //该方法实现两个小数相加
        return a+b;
    }
}
运行结果
3
6
2.5
②方法的递归
方法的递归就是指在一个方法的内部调用自身的过程,递归必须要有结束条件,防止进入死循环。
示例:
public class Recursion {    //方法的递归
    public static void main(String[] args) {
        System.out.println("1~n的和为"+getSum(4));
    }
    public static int getSum(int n){    //递归求1~n的和
        if (n==1){
            //满足条件,递归结束
            return 1;
        }
        int temp = getSum(n-1);
        return temp+n;
    }
}
运行结果
1~n的和为10
数组
数组的定义:
int[] a = new int[10];    //从a[0]到a[9]
int[] b = {1,2,3,4};
int[] c;    //声明一个int[]类型的变量
c = new int[10];    //创建一个长度为10的数组
内存状态图
可以通过“数组名.length”获取数组长度。
元素默认值
数据类型
默认初始化值
byte,short,int,long
0
float,double
0.0
char
一个空字符,即’\u0000’
boolean
false
引用数据类型
null,表示变量不引用任何对象
 
多维数组
int[][] a = new int[3][3];
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
a[2][0]
a[2][1]
a[2][2]
int[][] a = new int[3][];
a[0][0]
 
a[1][0]
a[1][1]
 
a[2][0]
a[2][1]
a[2][2]
int[][] a = {{1,2},{3,4,5,6},{7,8,9}};
1
2
 
3
4
5
6
7
8
9
 
 
 

Java学习笔记1(基础)的更多相关文章

  1. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  2. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  3. java学习笔记之基础语法(一)

    1.java语言基础由关键字.标识符.注释.常量和变量.运算符.语句.函数和数组等组成. 2.1关键字 定义:被java语言赋予了特殊含义的单词 特点:关键字中所有的字母都是小写. 2.2用于定义数据 ...

  4. JAVA学习笔记之基础概念(一)

    一.Java 简介: Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称. 由 James Gosling和同 ...

  5. java学习笔记之基础知识

    1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...

  6. java学习笔记之基础语法(二)

    1.数组: 概念:同一种类型数据的集合,其实,数组就是一个容器 优点:可以方便的对其进行操作,编号从0开始,方便操作这些元素. 2,数组的格式 元素类型[]数组名=new 元素类型[数组元素个数]: ...

  7. Java学习笔记之基础语法(数组)

    数组 数组概述:是具有相同数据类型的数据的集合 数组的定义:数据类型 数组名 [] 数组特点: 1,数组是引用数据类型. 2,数组值用大括号,元素之间用逗号隔开,元素的个数是0-N个 3,数组长度是固 ...

  8. Java学习笔记之基础语法(顺序,条件,循环语句)

    顺序结构:自上而下 条件分支选择结构: if条件语句   1,一旦某一个分支确定执行以后,其他分支就不会执行.if后面的条件必须是boolean类型   2,if  后面如果不加大括号,默认相邻的下一 ...

  9. Java学习笔记之基础语法(数据类型)

    8种基本数据类型    整型:   byte[1字节]          short[2字节]        int[4字节]         long[8字节]      1,四种整型之间的区别:申 ...

  10. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

随机推荐

  1. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  2. CSPS模拟 78

    大敛好稳啊..居然在模拟赛拿了540.. 有点畏惧.jpg 而我就是什么什么不行级人物了.. 真正在联赛拉开那么多分怎么追啊.. T1kmp?hash? T2 概率小到炸精时,对答案也就没贡献了 然后 ...

  3. CSPS模拟 67

    炸分炸的厉害.(当然这跟b哥定律无关 话说好久没人嘲笑我菜了,快飘的不知道到哪了. 谁能讽我两句我不要面子的. 另外在博客上写些没用的东西好浪费精力啊我又不想当网红 主要是考试的时候心态不稳. 以为T ...

  4. 关于Set和Map数据结构的一点学习

    关于js的Set和Map结构的学习和记录 对阮一峰老师的ES6入门和网上有关资料的的一点学习和记录 1.Set数据结构 Set构造函数的参数是一个可遍历( iterator)对象 Set中的成员值是唯 ...

  5. 在vue中如何使用axios

    1.前言 在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -& ...

  6. Linux基础指令--韩顺平老师课程笔记

    一.vi和vim编辑器 ①.三种模式 所有的 Linux 系统都会内建 vi 文本编辑器.vim 具有程序编辑的能力,可以看做是 vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. ...

  7. [转载]2.3 UiPath循环活动For Each的介绍和使用

    一.For Each的介绍 For Each:循环迭代一个列表.数组.或其他类型的集合, 可以遍历并分别处理每条信息 二.For Each在UiPath中的使用 1.打开设计器,在设计库中新建一个Fl ...

  8. layaair和egret的区别

    egret缺点1 编译速度非常慢 2 就是强类型转换非常的麻烦 3 只能用ts 所以只能用他们的IDE 不能用sublime layaair唯一不足的就是 insepct太垃圾 占用游戏界面 所以建议 ...

  9. BASH 编程之变量高级篇

    内部变量 • $$与$BASHPID都代表着执行程序的进程 ID,我们可以通过 echo 打印,并用 ps 指令检查得到相同的进程 ID [root@oracle ~]# echo $BASHPID ...

  10. .net 上传文件:超过了最大请求长度

    修改 web.config: 该方法是.net框架限制 添加: <system.web> ... ... <httpRuntime   ... maxRequestLength=&q ...