计算机语言和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. ES入门宝典(详细截图版)

    本文使用版本基于elasticsearch-6.4.0 1.什么是ES? 官网: https://www.elastic.co/products/elasticsearch  中文官网:https:/ ...

  2. Docker变量的相关总结

    一.AVG与ENV 1.在Dockerfile中,使用ARG与ENV的区别 ARG:ARG定义的变量用于构建Docker镜像,在通过build把Dockerfile构建成镜像后,ARG定义的变量便不在 ...

  3. 深入理解java虚拟机系列初篇(一):为什么要学习JVM?

    前言 本来想着关于写JVM这个专栏,直接写知识点干货的,但是想着还是有必要开篇讲一下为什么要学习JVM,这样的话让一些学习者心里有点底的感觉比较好... 原因一:面试 不得不说,随着互联网门槛越来越高 ...

  4. [转载]1.4 UiPath参数的介绍和使用

    一.参数介绍 用于将数据从一个项目传递到另一个项目.在全局意义上,它们类似于变量,因为它们动态地存储数据并传递给它.变量在活动之间传递数据,而参数在自动化之间传递数据.因此,它们使你能够一次又一次地重 ...

  5. Java性能分析神器--VisualVM Launcher[1]

    Java性能分析神器1--VisualVM Launcher VisualVM 当你日复一日敲代码的时候,当你把各种各样的框架集成到一起的时候,看着大功告成成功运行的日志,有没有那么一丝丝迷茫和惆怅: ...

  6. go中的数据结构字典-map

    1. map的使用 golang中的map是一种数据类型,将键与值绑定到一起,底层是用哈希表实现的,可以快速的通过键找到对应的值. 类型表示:map[keyType][valueType] key一定 ...

  7. 【html css js】实现一个简易日历

    ——[效果预览] 实现了日历最基础的功能,当前日期红色显示,可通过上方的左右按钮查看上一月或下一月的日期. ——[代码部分] 1. HTML <body> <div class=&q ...

  8. thinkphp 6.0 在 initialize 中重定向无效

    thinkphp 6.0 在 initialize 中重定向无效 改用 header() 函数 实例: // header('location:/index.php/模块/控制器/方法'); head ...

  9. ZeroC ICE的远程调用框架 ServantLocator与Locator

    ServantLocator定位的目标是Servant,而Locator定位的目标是“Ice Object”,即一个可定位的“Ice Object”代理.Servant是::Ice::Object的继 ...

  10. 剑指Offer-23.二叉搜索树的后序遍历序列(C++/Java)

    题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 分析: 二叉树的后序遍历也就是先访问左子树,再访问右 ...