zoukankan      html  css  js  c++  java
  • Java笔记1_java基础

    知识点:

    1,软件:一系列按照特定组织的计算机数据和指令的集合。分为:系统软件和应用软件

    2,人机交互:图形化界面和命令行方式

    3,命令行方式:dir  md(创建目录) rd(删除目录,空的)cd   cd..(返回根目录) cd/(返回根目录)  del(删除文件) exit(退出dos命令行)

    4,Java发展史:SUN(Stanford University Network)与1995年推出的基于Oak开发的一门高级编程语言。

    5,Java技术分支:JavaSE标准版,javaEE企业版,javaME小型版

    6,Java语言特点:面向对象,可移植性(跨平台),支持分布式的网络应用,安全性和健壮性

    7,Java三种核心机制:java虚拟机(JVM),垃圾回收机制(GC),代码安全性检测

    8,环境配置:JAVA_HOME:(保存变量)C:\Program Files\Java\jdk1.7.0_03

      Path:(设置JDK的可执行命令)%JAVA_HOME%\bin;…

      Classpath:(在执行时告诉JVM类的保存路径).;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar

      DOS下配置临时环境:Set命令,查看设置环境变量,只在当前命令行中有效

    9,Hello World!:代表程序员对世界的美好向往….

    10,标识符:26个英文字母大小写,数字0-9,“_”和“$“组成

      要求:1)不可以以数字开头;2)不可以使用关键字(main不是关键字)

      规则:包名:xxxyyyzzz  类名:XxxYyyZzz  变量名:xxxYyyZzz  常量名:XXX_YYY_ZZZ

        Java中严格区分大小写

    11,关键字:main不是关键字,但可以被虚拟机识别

    12,数据类型:

      1)Java中的数据类型分为:基本类型和引用类型;

      2)基本类型分为数值类型和布尔类型,数值类型分为整数类型和浮点类型;

      3)整数类型分为byte(1),short(2),int(4),long(8),char(2);浮点类型分为float(4)与double(8)类型 (括号中为字节数);

      4)引用类型分为:数组,接口,类;

      5)整数的表现形式:十进制,八进制(用0开头),十六进制(用0x开头);

    13,运算符:

      算术运算符:+正,-负,+加,-减,*乘,/除,%取模,++自增(前后),-- 自减(前后),+(字符串相加)

      转义字符:\n 换行,\b相当于backspace  \r 按下回车键 (\r\n:windows下的换行)\t制表符tab

      赋值运算符:=,+=,-=,*=,/=,%=

      比较运算符:==,!=,<,>,<=,>=,instanceof(检查是否是类的对象)

      逻辑运算符:&(与),|(或),!(非)^ (异或) &&(短路与) ||(短路或)

      位运算符:<<左移,>>右移,>>>无符号右移,&与运算,|或运算,^异或运算,~反码

      三元运算符:(条件表达式)?表达式1:表达式2

    14,程序流程控制:判断结构:if-else(简单部分建议使用三元运算符)switch语句(byte,short,int,char)

              选择结构,

              循环结构(while(..){..}  do{…}while(…);  for(..;..;..){…})

    15,For和while的区别:For和while可以进行互换,如果需要定义循环增量,用for更为合适;注意一点:其中里面的循环条件表达式必须可以判断

    16,Break和continue:

      应用范围:break选择结构和循环结构,continue用于循环结构

      注:这两个语句离开应用范围,存在是没有意义的;这个两个语句单独存在下面都不可以有语句,因为执行不到;Continue语句是结束本次循环继续下次循环;标号的出现,可以让这两个语句作用于指定的范围

    17,函数:(方法)定义在类中的具有特定功能的一段独立小程序

      格式:修饰符  返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…){  执行语句;return 返回值;}

    18,重载:(Override)函数名相同,参数列表不同,跟返回值类型无关

    19,数组:同一种类型数据的集合,下标从0开始;

      格式:元素类型[] 数组名=new 元素类型[元素个数];

        元素类型[] 数组名= new 元素类型[]{元素,元素,元素。。。}

    20,内存知识:

      栈内存:存放基本类型的变量和对象的引用变量(超过作用域自动释放)

      堆内存:存放由 new 创建的对象和数组,(自动垃圾回收机制收取)

      网上参考讲解:http://dylanxu.iteye.com/blog/1322916  Java中堆内存与栈内存分配浅析

    21,数组的两种异常:

      ArrayIndexOutOfBoundsException:访问了数组中不存在的角标

      NullPointerException:空指针异常,引用为null时,还用于操作实体

    22,数组遍历:for循环,增强的for循环

    23,数组排序:

      选择排序 :先拿第一个跟其他比,若比其他大换位,保证第一个最小,以此类推

      冒泡排序:相邻两个元素进行比较,如果符合条件换位,保证最后一个符合条件

      开发中一般使用Arrays.sort(); 

    24,数组的折半查找:提高效率,但是必须要保证该数组是有序的数组(前提);可以应用到插入有序数列中数值

    25,二维数组:大箱子里面包含小箱子,使用与一位数组一样

    问题:

    1,简述对JVM,JRE,JDK的理解?

      jvm:java虚拟机,jre:java运行环境,jdk:java开发工具包

    2,简述环境变量path和classpath的作用?

      path:windows程序文件的目录,classpath:java类文件的目录

    3,简述classpath环境变量值结尾处是否需要加分号,有什么区别?

      JVM查找文件的顺序:如果没有classpath环境变量,JVM只在当前目录下查找要运行的类文件;如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次;值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”表示

    4,++在前,在后的区别?

      单独使用是没区别的,当遇到有赋值的时候,前加是先计算再赋值,后加是先赋值再计算。a=3;b=a++;  //a=4,b=3;  a=3;b=++a;  //a=4,b=4

    5,  short s = 3; s = s+2; s+=2,有什么区别,为什么?

                  s=s+2;//编译失败,因为会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型;

                  s+=2;//编译通过,因为+=运算符在给s赋值事,自动完成了强转操作。

    6,  &和&&的区别?

      位运算时没区别,逻辑运算时,后者会出现短路情况

    7,  >>和>>>的区别?

      移位时,>>最高位补什么由数据的最高位值定,>>>无论最高位是什么都用0补

    8,  ^作为位运算符的特点?

      相异或同一个数两次得到原数(加密操作)

    9,  if语句和switch语句的应用场景。用于判断上switch效率更高(建议),switch只用于byte,short,int,char

    10,如何理解,累加思想,计数器思想,大圈套小圈思想。

    11,break和continue的特点?

      应用范围:break选择结构和循环结构,continue用于循环结构;这两个语句离开应用范围,存在是没有意义的;这个两个语句单独存在下面都不可以有语句,因为执行不到;Continue语句是结束本次循环继续下次循环;标号的出现,可以让这两个语句作用于指定的范围

    12,循环语句的什么时候用?(当一个语句执行多次)while和do while的区别?(do至少执行一次)while和for的区别?(循环增量时用for)

    13,用具体的四部(是什么,特点,怎么用,什么时候用)将函数知识点体现出来?

      函数是什么? 函数就是类中一段独立的小程序,对部分代码进行封装,方便于调用。

      函数的特点? a,定义在类中。b,为了将需要的功能进行独立的封装。  c,函数的出现,对代码提高了复用性。     d,只有被调用才会执行。e,函数就是一个功能,功能通常有结果,没有结果的情况用void表示。

      函数怎么用?a,函数代表功能,功能通常有结果,而且需要参与运算的数据。两个明确:明确功能结果,其实就是明确返回值类型,明确功能的未知内容,其实就是在明确参数列表。b,在两个明确基础上,用java的函数的格式进行具体的代码。c,记住,函数体现功能,只定义功能所需的部分内容即可。     d,只要是功能,尽量用函数进行封装。

      函数什么时候用?还要出现功能定义,就通过函数来表现。 将部分重复代码进行封装,提高复用。    可以将代码的书写。比如,将输出语句封装。

    14,return语句有什么用?1,结束函数,2,将结果返回给调用者。

    15,如何快速思考定义一个函数。1,明确结果,2,明确未知内容

    16,定义函数时注意事项?写法上,函数中不能定义函数,只能调用函数。定义上,函数自定义功能中所需的内容,额外的不要定义。

    17,函数重载的理解以及好处?在类中定义了两个以上的同名函数,参数不同而已,跟返回值无关。好处:增强阅读性,方便调用

    18,函数运行的内存过程?

      1,当函数被调用的时候,函数就压栈了。  在栈内存中分配一个空间来存储该函数中的局部变量。      

      2,执行该函数中的执行语句进行运算。                          

      3,当执行到return时,该函数结束,该函数弹栈,函数内部的变量空间都会被释放。

    19,数组的理解,四部?

      1,是什么? 是一个容器,可以存储多个数据。   

      2, 特点?      1,必须存储同一类型的数据。2,必须要明确元素的个数(数组的长度)        

      3,怎么用?  通过中括号的方式来表示数组。核心思想:通过数组的固定的索引(角标)对数组中的元素进行访问(设置,获取)  

      4,什么时候用?       当数据很多而且明确了个数,而且都是同一类型时,这时就要想到使用数组。

    20,栈和堆的特点。

      栈: 存储都是局部变量。  一旦局部变量所属的大括号区间结束,该变量释放。

      堆: 存储的都是数组和对象,也称为实体,实体就是可以存储多个数据的空间。 

    21,数组操作中常见的问题,什么时候出现,出现的原因?

      1,数组角标越界异常,运行时,访问到了数组中不存在角标。2,空指针异常,运行时,引用型变量没有任何实体指向时,还在操作该实体。

    22,数组操作的思想是什么?核心思想:就是角标。通过元素的自动编号就可以访问(设置和获取)数组中的元素。

    23,数组的常见的操作有哪些?最值,排序,二分查找(有序数列)

    程序:

    1,最有效率的方式算出2乘以8等于几?  2<<3

    2,对两个整数变量的值进行互换(不需要第三方变量)。n=n^m;m=n^m;n=n^m;

    3,int i = 3;   i = i++;   System.out.println("i="+i);//i是?  i=3

    4,打印九九乘法表。For循环

    		for (int i = 1, j = 1; j <= 9; i++) {
    			System.out.print(i + "*" + j + "=" + i * j + "\t");
    			if (i == j) {
    				j++;
    				i = 0;
    				System.out.println();
    			}
    		}
    

    5,编程题: 定义一个功能,完成对考试成绩的等级划分。

    switch (num / 10) {
    		case 10:
    		case 9:
    			System.out.println("A");
    			break;
    		case 8:
    			System.out.println("B");
    			break;
    		case 7:
    			System.out.println("C");
    			break;
    		case 6:
    			System.out.println("D");
    			break;
    		default:
    			System.out.println("E");
    			break;
    		}
    

    6,十进制转十六进制 

    /*
    	 * 进制转换功能。 base:相与的数值 offset:便移的位数
            trans(60, 15, 4); 60转成十六进制数
    
    	 */
    	public static void trans(int num, int base, int offset) {
    		if (num == 0) {
    			System.out.println("0");
    			return;
    		}
    		// 必须先将十六进制的元素进行存储。
    		char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
    				'B', 'C', 'D', 'E', 'F' };
    
    		// 定义一个临时容器,用于存储查到的结果。
    		char[] arr = new char[32];
    		int pos = arr.length;
    
    		while (num != 0) {
    			int temp = num & base;
    			arr[--pos] = chs[temp];
    			num = num >>> offset;
    		}
    		for (int x = pos; x < arr.length; x++) {
    			System.out.print(arr[x]);
    		}
    		System.out.println();
    	}
    
  • 相关阅读:
    Serverless 时代下大规模微服务应用运维的最佳实践
    Dubbo 跨语言调用神兽:dubbo-go-pixiu
    Flink 1.12 资源管理新特性回顾
    [JDBC] Kettle on MaxCompute 使用指南
    AI运动:阿里体育端智能最佳实践
    MaxCompute非事务表如何更新数据
    如何利用云原生技术构建现代化应用
    实时数仓入门训练营:实时计算 Flink 版 SQL 实践
    实时数仓入门训练营:基于 Apache Flink + Hologres 的实时推荐系统架构解析
    Flink + Iceberg + 对象存储,构建数据湖方案
  • 原文地址:https://www.cnblogs.com/yys369/p/2822434.html
Copyright © 2011-2022 走看看