计算机语言和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. Codeforces 1183F - Topforces Strikes Back

    Div. 3的题,竟然卡了好久,自闭.jpg 好像我的思路不太一样呢QAQ 首先注意到,如果一个数是另一个的因子,那它肯定不会出现在答案中. 我们先把所有数排序,然后对每个数,我们要往前再找两个数(或 ...

  2. 7.19 NOIP模拟6

    这次考试又一次让mikufun认识到了常数的重要性 T1.那一天我们许下约定 这题一看到D<=1e12,想都没想,矩阵快速幂!然后飞快的码了一个,复杂度n^3logD,让后我观察了一下这个转移矩 ...

  3. jdbc 加载数据库驱动如何破坏双亲委托模式

    导读      通过jdbc链接数据库,是每个学习Java web 方向的人必然一开始会写的代码,虽然现在各路框架都帮大家封装好了jdbc,但是研究一下jdbc链接的套路还是很意义     术语以及相 ...

  4. WordPress代码高亮插件SyntaxHighlighter终极使用详解

    子曰: 工欲善其事,必先利其器.作为码农一枚,再加上站长这个已经不再光鲜的称呼,岂能没有一款经济实用.操作简单.而且功能必须强大.样式也必须好看的Wordpress代码高亮插件?!作为一个视代码如生命 ...

  5. 6.2.2 辅助类GenericOptionsParser,Tool和ToolRunner深入解析

    辅助类GenericOptionsParser,Tool和ToolRunner (1)为什么要用ToolRunner 将MapReduce Job配置参数写到java代码里,一旦变更意味着修改java ...

  6. 使用 Zephir 轻松构建 PHP 扩展

    简介: 通过 PHP 扩展, 我们可以在 php 代码中使用一些特定的方法(大部分的 php 扩展都是用 C 写的). 比如,在 PHP 中需要与 SQLite3 交互,我们可以自己写方法与之进行连接 ...

  7. shell中tar加密打包

    tar 打包是一个很常见的操作,但是当打了一个包却又不想让别人看到里面的小秘密的时候就可以使用加密的方法进行打包. 以下是一个脚本实现的加密打包和解密的shell脚本: cat tar_passwor ...

  8. office 2019 激活

    office 2019 激活: 1.新建文本文档   激活.txt 2.复制以下内容到    激活.txt 中 @echo off (cd /d >& title Office Acti ...

  9. nyoj 74-小学生算术(进位问题)

    74-小学生算术 内存限制:64MB 时间限制:3000ms 特判: No 通过数:23 提交数:53 难度:1 题目描述: 很多小学生在学习加法时,发现“进位”特别容易出错.你的任务是计算两个三位数 ...

  10. nyoj 243-交换输出 (swap)

    243-交换输出 内存限制:64MB 时间限制:3000ms 特判: No 通过数:16 提交数:39 难度:1 题目描述: 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输 ...