- 浏览: 16568 次
- 性别:
- 来自: 广州
最新评论
Java的环境配置 day01 1. 环境配置有如下的三种方法: a) 我的电脑属性: 从path 环境中配置 b) 利用临时的变量设置: set path = java的所在路径\bin%d% c) 定义批处理文件 : 设置步骤如下: a) set path = %cd%\H:\java\jdk1.7\bin b) c) start 一. java的环境搭配 1. 安装jdk >1.jdk是java的开发和运行环境 >2.jre是java的运行环境 2. 配置环境变量?为什么呢?方便在任意的目录下使用java工具 a. 我的电脑—属性—高级—环境变量 在已有的环境变量path的基础下,添加一个jdk\bin目录即可. 这种方法较为一劳永逸 技巧:为了日后修改方便,不需要总是修改path,可以首先定义一个环境变量 JAVA_HOME 把前面的路径保存下来.并且通过%JAVA_HOME%来动态的获取该变量 b. 也可以通过临时环境变量,通过dos控制台,使用set命令即可。 set path = (java的按照目录)jdk\bin;&path&; c. 如果是在别人的电脑去完成java开发,还不想配置java环境变量.咱们可以使用批处理来完成: a) 假设: a.bat b) set path = %cd%jdk\bin;%path% %cd%代表获取当前目录. c) 为了避免了不让它一闪而过:start. 二:转义字符 1.\n:换行 2.\t:tab键 3.\b:退格键 三: 数据运算符 & : 只有两边都为true结果为true,否则为false。 |:只有两边为flase才为false,否则都为true ^ : 只有两边相同 结果为false,否则为true。 Java基础知识 day02 二.变量: 在内存中所开辟的空间将常量值进行存储、方便运算。 好处:该空间可以重复使用.. 定义格式: 数据类型 变量名 = 初始值 使用变量的注意事项: 1. 变量有自己的作用域 2. 变量不能赋空值. 基本数据类型: byte int long char short double boolean float 引用数据类型: 接口 类 数组 什么时候需要定义变量: 当数据不确定时,或者运算后的结果需要进行下一步的操作 这时候就要定义一个变量将该不确定的数据进行存储。 三.运算符: 1. 算术运算符: 1. +:连接符 2. %取余: 任何数%2 结构非零急一 3. ++自增 (++a先运算后赋值 a++先赋值后运算) 2. 赋值运算符: 1. int a,b; 2. a=b=c = 4; 3. i+=4; i=i+4; 3.比较运算符: 特点:运算后结构非false 或true == 相等于 4.逻辑运算符 & | ^ 这些运算符不仅仅可以代表boolean表达式,也可以进行位运算。 &和&&:当左边为false时,&:两边的表达式都参与运算。&&右边的表达式不参与运算。 |和||:当左边为true时,|:两边的表达式都参与运算。||右边的表达式不参与运算。 ^:两边一样结果为false。 5.位运算符 左移:<< 3<<2=12 3<<4 = 48 右移:>> 和 >>> 区别: >>:右移后,空位按照移位前的最高位来填充。最高位为0,用0补。最高位为1用1来补 >>>:无符号右移,无论最高位是什么,都用0补。 6.负数的由来:取反+1 -6: 00000000 00000000 00000000 00000110 取反: 11111111 11111111 11111111 11111001 加一: 11111111 11111111 11111111 11111010 四.语句 判断:if 1. if(条件表达式){} 2. if(条件表达式){}else{}; 3. if(条件表达式){}else{} 对于第二种格式:简化形式,三元运算符 变量 =(条件表达式)? 表达式1 :表达式2 简化形式与非简化形式有如果不同: 解答: 简化形式因为是一个运算,所以咱们必须要有一个结果。 if(x >1) Y = 100; else Y = 200; Y =(x>1)? 100: 200; 注意:无论条件表达式有多复杂,只要有true ||flase 出现,则没问题.否则条件表达式会出错:if(x =1); 选择:switch(表达式) switch(表达式) { case 1: 执行语句; break; case 2: 执行语句; break; case 3: 执行语句; break; default; 执行语句; } 特点: 1.表达式运算四种类型的值:byet int short char(它有一个自动型转换过程) 2.case和default之间是可以没有任何的顺序,但是在运算期间,肯定会先读取第一个case ,当case不匹配,会继续执行其他的case。当所有的case不匹配的时候.会运行default。 3.switch语句结束的两个方式:a.读取switch语句大括号结束b.碰到break语句结束.注意:如果没有碰到break,也没有读取结束的时候,那么程序是一直往下面运行,直到程序运算完毕 循环:while du{}while; for 1. while(表达式){执行语句}(先判断后执行) 2. do{执行语句}while(条件表达式);(先执行一次,再判断) 3. for(初始化表达式;循环判断条件;循环后的操作表达式){} 什么时候用这些语句呢? 当对固定的几个值进行判断的时候,建议使用switch 当对范围的判断,或者对运算后的真假进行判断的时候,我们需要用到if 当需要执行语句多次的时候.我们使用到循环 while与for循环是可以相互交换 因为作用域的关系: 在使用两个语句的时候有些区分,如果定义变量只为循环存在,循环结束后就没有意义。我们使用到for循环语句。 如果变量在循环后再执行别的运算,那么我们使用while比较好~ break:选择结构和循环结构 continue:循环结果:结束本次循环.继续下一次循环 函数: 特点: --类中的一个独立小程序 --只有被调用的时候才会运算 --可以重复的去运行 好处: 对代码进行封装,可以提高代码的复用性 格式: 返回值类型 函数名(参数类型 形式参数1) { 执行语句; return 返回值; } 如果定义一个函数? 1. 明确该功能函数运算后的结果。(明确返回值类型) 2. 明确该功能实现的过程,是否需要有未知值参与运算(明确函数的参数类型) 要定义一个加法运算功能 int getSum(int x ,int y) { return x + y; } 方法的重载:@overload(标记重载) 特点:当多个函数的功能一致,只是参与运算不同的时候,为了提高代码的可阅读性,我们可以使用方法的重载.用参数来进行区分. int getSum(int x,int y,int z) { return x + y + z; } 函数的特点: 有一种情况,函数执行一个功能,但没有具体的返回值。返回值类型不可以具体的来确定的时候,那么我们用void关键字来表示.那么函数的return 语句是可以忽略不写的. 也可以:return ; day03 数组 五.数组: 其实就是同类型的一组数字 同一种类型数据的集合,类型一定要一致。 内存图: java划分了两片内存,方便了运算 栈内存:存放局部变量,函数上和函数定义的变量都是局部变量 变量一点使用完毕,自动清空。 栈内存: new关键字所建立的,都称为实例.在堆内存里面存放的. 数组常见的如下问题: 角标越界异常:使用到数组中不存在的角标。 (ArrayIndexOutOfBoundsException) 数组特有异常 空指针异常:引用型变量等于null,也就是没有指向。 (NullPointsException) ######## 本身就是一个容器,用来存储数据. 特点:固定的长度. 好处:给元素进行编号,从零开始。同时也可以length属性获取数组的长度. 什么时候使用数组? 当数据较多的时候,通常是为了方便操作这些数据都需要进行临时存储. 习惯: 通常操作数组都需要遍历,获取数组中的元素需要一个指针。 通常对指针的值的改变也就是更改了数组里边的值啦~~ 选择排序: int[]arr = {1,2,45,657,33,214,64,16,32,13}; for(int i = 0;i<arr.length;i++) { for(int j = i+1;j<arr.length;j++) { if(arr[j]>arr[i]) { swap(arr,j,i); } } } 冒泡排序: bubbleSort public static int[] bubbleSort(int[]arr) { for(int i = 0;i<arr.length;i++) { for(int j = 0;j<arr.length-i-1;j++) { if(arr[j]>arr[j+1]) { swap(arr,j,j+1); } } } return arr; day 04 面向对象 面向对象: 1. 符合现实中人民思考习惯的一种思想. 2. 它将程序员的角色(执行者)转换成(指挥者) 3. 将复杂的问题简单化. 对象无处不在,一切皆对象 对象是实实在在存在的个体,那么我们需要使用计算机语言来进行描述 在java当中,描述事物是通过类来完成,在计算机中是通过new 类来创建对象.并且指挥对象完成事情. 例如: 制造汽车,通过汽车来描述:图纸。对应的java中的类class 通过图纸来产生汽车: 对象,对应的就是java在堆内存中所产生的实例 通过java语言编写程序,其实就是不断的定义类,创建对象的一个过程。 成员变量(事物的属性) 成员方法(事物的行为)。 对象的存在有什么好处?或者说怎么才叫做对象? 对象可以用于封装数据.可以在对象中定义属性和行为,并指挥. 在编写程序中,当要完成某个功能的时候,先看一下java是否提供了自有的对象.如果有,那么可以直接的去使用这个对象里面的功能.否则如果该对象不存在.那么我们需要定义一个对象,并将需要的功能封装到该对象中,以便对象的重复使用.。 对象是如何使用呢? 通过new 关键字来建立,并且通过 对象.成员变量 的形式操作对象所做的事情.. 匿名对象: 其实就是一个没有名字的对象,可以理解为创建对象的简化形式. 1. 当只对对象方法进行一次操作的时候可以使用 a) new person(); 2. 可以做为实际参数的传递: a) public void show(new Person()); 封装: 什么是封装呢? 其实就是隐藏实现细节,提供了安全性 在通过类来创建对象的时候,可以通过对象调用成员,也可以使用对象的属性 为了提高安全性,所以避免了直接对属性进行访问:我们可以把它设计为私有private 对外提供方法来间接访问age进行赋值! private int age ; public void setAge(int age) { this.age = age; } public int getAge() { retrun age; } 在代码的体现: 1.函数就是一个最小的封装体 2.类本身就是一种封装 3.包也是一种封装 4.ssh框架也是一种封装. 5.timcat服务器软件 /* 体现良好的封装! */ class Person { private String name ; private int age; /* 这是隐藏下来的代码~~ */ Person() { super(); } public void setName(String name) { this.name = name; } public String getName() { return name ; //this.name } public void setAge(int age) { this.age = age; } public int getAge() { return age; } } class Demo5 { public static void main(String[] args) { Person p = new Person(); p.setName("kudy"); String name = p.getName(); p.setAge(18); int age = p.getAge(); } } 执行的过程: 1. 加载Person .class文件到堆内存中 2. 因为new,在堆内存中开辟空间,创建对象。在对象中出现了name 与age 3. 对象中的属性默认初始化 4. 对象中的属性显式初始化 5. 构造函数初始化 6. 创建引用变量,并将该对象的首地址给变量,该变量这时候就指向了对象。 this语句代码什么? 1.this所在的函数所属对象的引用 2.this被那个对象调用.那this就代表那个对象 A)this还可以用与区分成员变量与局部变量同名的情况 B)什么时候使用this? 当定义功能时,该变量内部使用了本类的对象,同时,this表示该对象 C)this语句: 在构造函数中,方便于构造函数调用,但注意:this语句只能在构造函数的第一位.因为要对执行的数据进行初始化. day05 面向对象 1, 构造函数 a. 函数名与类名相同 b. 没有返回值 c. 函数中没有return语句 作用: 可以对对象进行初始化 比喻:Person p = new Person(); a,加载Person.class文件到堆内存中 b,在堆内存中开辟空间,创建实例对象 c,对对象的内容进行默认的初始化 d,对对象的内容进行显式的初始化 e,对对象自定义的内容进行初始化,通过构造函数来完成的. f,在栈内存中定义变量存入对象的地址值,指向该对象 注意: 在用class文件时,jvm会自动的在该类添加一个默认的构造函数(没有构造函数,你就创建不了对象的哦)该函数的形参是空的. 构造函数可以通过this来进行互相的调用,是通过this语句来完成 this的语句一定要放在构造函数的第一行 2,static关键字 特点: ---随着类的加载而加载,随着类的消失而消失,静态成员的声明周期最长 ---优先于对象 ---被所有的对象所共享 ---可以直接通过类名来调用 注意: ---静态方法只能访问静态的成员(因为我是不需要创建对象就可以使用的) ---静态方法中不能出现this,super关键字.因为静态方法没有所谓的对象 ---主函数是静态的 2, 设计模式:解决某类问题之间有效的方法. java中有23种设计模式 单例设计模式: a) 私有化构造函数 b) 定义一个静态私有化的本类对象 c) 定义一个静态方法返回内部对象的地址 class Singleton { private Singleton() { //私有化构造函数,避免创建对象! } private static Singleton singleton = new Singleton(); public static Singleton getSingLeton() { return singleton; } } class Demo7 { public static void main(String[] args) { Singleton s1 = Singleton.getSingLeton(); Singleton s2 = Singleton.getSingLeton(); System.out.println(s1== s2); } } 3,静态的代码块: 特点:随着类的加载而加载,执行一次,优先于函数 作用:对于类的初始化 4,内部类: 其实就是一个类的内部中定义另外一个类,内部类可以定义在外部类里面 内部类可以直接访问外部类的成员,那是因为内部类只有一个外部类的引用(类名.this)而外部类访问内部类的成员需要创建对象 什么时候使用内部类? 描述事物时,该事物内部与还有事物,那么可以通过内部类来完成 当内部类在成员位置上,可以被成员修饰符所修饰。 当内部类中定义了静态成员时,内部类是必须要静态的.但是静态内部类局限性 但方法中里面定义了内部类,方法里面的属性内部类是不能所访问的.因为局部变量是存储在栈内存中,系统会不知道什么时候会被释放.那么我们如果定义成final 就是没问题.定义成final就是常量.是不能改变的量.是存储在堆内存中. day06面向对象(面向对象的总结) 异常: 异常的处理机制: 1.可以在方法后面使用throws关键字,声明向外抛出一个异常 2.可以使用try catch语句块捕获异常 3.finally语句块的作用: finally需要结合try使用.不论如何finally当中的代码都是会被执行 4.如果是运行时异常,那么jvm是自动的抛出一个异常对象.让虚拟机去处理.也可以自己手动的去处理. 自定义异常: 1.自定义编译时异常,定义一个类继承与Exception 2.可以在程序中使用throw关键字向外抛出一个编译时异常对象,这时方法必须向外抛出一个异常 throw关键字相当于return 异常的使用细节: 因为都是为了多态而服务的,所以当父类型的引用指向子类型的对象的时候/jvm就分辨不清楚啦~~) 1. 子类重写父类的方法.不能抛出被父类更多的方法.没抛,子类不能抛.父类抛了.子类可以不抛.要抛也只能抛父类一样的异常,或者父类异常的子类. 2. 一个try语句可以跟多个catch语句一起来捕获异常 3.try finally 可以嵌套使用. 异常的使用总结: 1.异常是在程序运算期间发生的错误,所有的异常类都是Throwable的子类 2.error,java的虚拟机错误,比较严重。处理不了.不用处理。编译是不会出错 3.Exception:异常{ 一个特殊的子类,RuntimeException这个类的所有的子类都是运行的时候异常,不必要处理,编译时不会报错.交给默认的处理程序.其它的子类都是编译时异常,比较严重的错误!在方法后面应该跑出去,我们在调用方法一定要处理.否则编译器会报错。 } 4.异常处理方式:try {} catch捕获异常,throws 向外抛出一个异常 5.thorw 与throws 的区别? throws声明方法向外抛出一个异常 throw和return一样,只不过是要创建一个对象 注意: 抛出一个对象,一定需要在方法外面声明抛出一个异常. 6.自定义异常: 1.可以自己写一个类继承与Exception,这个类就是编译时异常 2.可以自己写一个类继承于RuntimeException,这个类就是运算期间异常 面试题目: 1.请说说final 与 finalize 和 finally的区别?三者有什么共同点? 解答: 除了单词有点像,他们都是没什么缘分的.. 1.final是java的修饰关键字.修饰类,类不能被继承.修饰属性.属性会编程常量.不能修改的值.修饰方法.这个方法不能被重写. 2.finalize:是在Object类当中定义的一个方法,所有的类都是默认继承与Object类.也就是说:继承了这个方法.当对象被垃圾回收之前.jvm会自动的调用该对象的finalize方法,所以我们一般通过finalize来做一些内存释放的工作.. 3.finally :java中的关键字,必须结合try语句一起来使用.写在finally代码中的语句.一定会被执行.除非jvm退出。 class MyException extends Exception { public String getMessage() { return "上帝~~"; } } class Student { public void readBook(int num) throws Exception { if(num >300 || num <1){ throw new Exception(){ //返回一个对象 //匿名内部类.重写了父类的方法! public String getMessage() { return "你在吹牛吗?"; } }; } else { System.out.println("好孩子!"); } } public void eat(int week) throws MyException //向外抛出去一个异常 { if(week<1||week>7) throw new MyException(); //结束,有了一个对象! else System.out.println("星期是正确的!!"); } } class Demo10 { public static void main(String[] args) { try { new Student().readBook(400); } catch (Exception e) { e.printStackTrace(); } try { new Student().eat(88); } catch (Exception e) //父类型的引用所指向子类型的对象 Exception e = new MyException(); { e.printStackTrace(); } } } 1. 封装性: 1)类的封装:将属性都私有化(private),防止外界的直接访问,对外提供s et 与get方法。 优点:隐藏内部实现过程,方便权限的管理 2)方法的封装:在实现功能的时候,应该尽可能的多抽取方法,尽量将别人用不到的方法私有化,实现一个封装性。将提供方法进行功能调用方法设置为公有的public就可以 优点:让类看起来更加的整洁,对外隐藏了实现的细节。 2. 抽象: a) 为了描述显示的事物,在程序中通过对象来映射显示中类的事物(万物皆对象) b) 将一组特征相似的对象共同的特征和行为抽象出一个类来定义 c) 类的成员变量(属性)来描述特征,用成员方法来描述对象的行为 3. 继承: a) 使用extends 关键字让子类继承父类,子类就可以自动复用了父类的所有属性和方法(非私有) b) 子类实例化过程: 1. 子类的构造方法一定会调用父类的构造方法,可以在第一行使用this(实参)来调用自己其他的构造方法,使用super(实参)来调用父类的构造方法 2. 如果第一行没有声明,jvm会自动调用父类的无参的构造方法 3. 子类和父类之间的转换 1,可以将子类实例当做父类来用,反则不能. 2,把子类当做父类来用时:调用方法是子类的(重写的关系),这个是做了动态的绑定,如果是访问属性的(静态的绑定)也就说:调用的数父类的属性. 3,把子类当做父类来使用时,不能调用子类特有方法,因为编译器会检查语法,发现该父类没有这个方法,会报错! 4,如果是把子类当做父类来使用的时候,这时候可以强制类型转换,则再有把握:咱们都需要用instanceof来判断一些对象的类型。 4. 多态: 1. 把子类当做父类来用 2. 我们在编程无时无刻不使用多态,在定义一个方法形参的时候,为了便于方法的通用性,通常会将形参定义为父类类型,最好是接口类型,当调用方法的时候.那么就可以子类实例当做父类来使用,正因为有了多态,我们经常把子类当做父类来使用。所以有了以下的规定。 ii. 返回值类型必须和父类的一致,或者是父类返回值类型的子类实例 iii. 子类不能有比父类更加严格的访问权限,假设父类是 public 而你子类是:private 那么在传递参数的时候,有可能会因为访问权限而出错!所以java是不允许的. iv. 子类不能被父类抛出更多的异常. v. 异常: throw 抛出一个异常对象.方法外部也是需要向外声明抛出一个异常 彩票的摇奖过程: import java.util.Random; class Lottery { private int poorCount; private int luckyPoorCount; private int[] poor; private int []luckPoor; //构造函数在构造摇奖的对象 Lottery(int poorCount,int luckyPoorCount) { this.poorCount = poorCount; this.luckyPoorCount = luckyPoorCount; setPoor(); } //填充奖池 private void setPoor() { /* 怎么做? 1.根据poorCount创建数组, 2.将1~poorCount填充数组, */ int[] arr = new int[poorCount]; for(int i=0; i<poorCount; i++) arr[i] = i+1; //37个数字 poor = arr; luckPoor = new int[luckyPoorCount]; } public void run() { //摇出所有的中奖号码放在中奖池中 setLuckyPoor(); //输出所有的中奖号码 listLuckyPoor(); } //获得所有的中奖号码~~ public void setLuckyPoor() { //1.定义循环,循环次数是luckyPoorCount for(int i=0; i<luckyPoorCount; i++) { //1.产生一个随机的中奖号码 int luckyNumber = getLuckyNumber(); //2.将中奖号码从里面删除 deleteNumber(luckyNumber); //3.将中奖号码放在奖池中 luckPoor[i] = luckyNumber; } } private int getLuckyNumber() { int randomNum = new Random().nextInt(poor.length); return poor[randomNum]; } private void deleteNumber(int luckyNumber) { int[] newArr = new int[poor.length-1]; int pos = 0; for(int i=0; i<poor.length; i++) { if(poor[i] == luckyNumber) continue; newArr[pos++] = poor[i]; //幸运的数字 } poor = newArr; } private void listLuckyPoor() { StringBuffer sb = new StringBuffer(); for(int num : luckPoor) sb.append(num +" "); System.out.println("中奖的号码为:"); System.out.println(sb); } } public class Demo11 { public static void main(String[] args) { Lottery lottery = new Lottery(36,7); lottery.run(); } }
发表评论
-
javase_22(TCP的理解)
2012-09-02 19:43 647TCP传输 Socket(客户端)和ServerSocket( ... -
javase_21(DUp的学习-->*)
2012-08-30 00:45 727Socket网络编程 网络协议 IP地址与端口号 本 ... -
javase_20(Awt初步认识)
2012-08-27 01:00 1028多线程的再度复习.class package com.jav ... -
javase_19(多线程)
2012-08-24 23:32 875进程: 进程是具有一定独立功能的程序关于某个数据集合上的一次 ... -
javase_18(回顾与反射机制学习)
2012-08-20 11:58 462AM上午总结: package com.ja ... -
javase_17(IO的总结)
2012-08-20 11:55 1070所有的流在使用完毕时,都需要调用close方法进行关流,释放资 ... -
javase_16(其它流)
2012-08-20 11:52 911IO包中的其他流: 1.打印流 a)PrintWri ... -
javase_16(其它流)
2012-08-20 11:38 0IO包中的其他流: 1.打印流 a)PrintWri ... -
javase_15(File类的应用)
2012-08-19 00:07 901File类:用来将文件或者 ... -
javase_14(字节流)
2012-08-19 00:00 726字节流的抽象基类: InputStream(输入) ... -
javase_13(字符流)
2012-08-19 00:00 623IO(Input OutPut)流 IO流用来处理设备 ... -
javase_12(集合+时间对象)
2012-08-19 00:00 583Map集合 1.Map存储了一系列键值的映射关系2.M ... -
javase_11(集合的理解)
2012-08-19 00:00 888集合类: 为什么使 ... -
javase_10(String类日常操作)
2012-08-18 09:40 841第一: package com.ja ... -
javase_08(基础面试题)
2012-08-18 09:38 765面试题:请说说抽象类和接口的区别 抽象类,使用abstrac ... -
javase_07(继承与设计模式)
2012-08-18 09:36 646/* 子类对象的实 ... -
javase_06(面向对象)
2012-08-18 09:29 703/* 内部类: .在类中定义的类我们称之为内部类, ... -
javase_05(面向对象)
2012-08-16 11:25 0一.构造函数的定义与 ... -
javase_05(面向对象)
2012-08-16 11:22 829一.构造函数的定义与作用 1.函数的名次与类同名2.没有 ... -
javase_04(面向对象)
2012-08-16 11:21 559面向对象:一种编程思想,使用对象来描述生活中的事物:面向对象的 ...
相关推荐
- **类与对象**:面向对象编程的基本概念,如类的定义、对象创建、封装、继承、多态等。 - **异常处理**:理解如何使用try-catch-finally结构处理程序运行时可能出现的错误。 - **字符串处理**:String类的常用...
总结一下,面向过程和面向对象编程思想各有特点。面向过程适合处理简单的、流程化的任务,而面向对象更适合描述复杂的关系和行为,更接近现实世界的模型。在Java SE学习中,理解和掌握面向对象编程是至关重要的,...
同时,面向对象编程(OOP)的概念,如封装、继承和多态性,也是JavaSE的核心内容。 在JavaSE中,异常处理是一个重要的部分。通过try-catch-finally结构,程序员可以捕获和处理运行时错误,确保程序的健壮性。另外,...
从基础的数据类型到面向对象的核心概念,再到高级特性如多态和异常处理,JavaSE 为开发者提供了丰富的工具和支持,帮助他们构建高质量的应用程序。无论是初学者还是有经验的开发者,掌握这些知识都将有助于提高他们...
javaSE回顾总结,学习笔记,查漏补缺。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态...
### JavaSE基础知识总结 #### 一、Java特点与运行原理 **1.1 Java特点** - **简单性:** Java语言的设计目标之一是易于理解和使用,它的语法清晰、简洁。 - **面向对象:** Java是一种纯面向对象的语言,支持封装...
### JavaSE重点知识点总结 #### 一、Java概述 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)的James Gosling等人于1991年开始开发,最初命名为Oak,旨在用于控制嵌入式设备的...
本总结将深入探讨JavaSE中的核心概念和技术,帮助初学者建立起坚实的基础。 1. **基本语法与数据类型** - Java是一种静态类型的面向对象编程语言,强制类型检查确保了代码的稳定性。 - 数据类型分为基本类型(如...
1. **Java简介**:了解Java的历史、特点,如跨平台性、面向对象、自动内存管理等。 2. **环境搭建**:学习如何安装JDK(Java Development Kit),配置Java环境变量。 3. **Hello, World!**:通过编写第一个Java程序...
本资源建议用Xmind打开,汇集了我学习JavaSE部分面向对象的总结,用了思维导图的方式。细节突出,重点突出,很适合新手参考学习,也适合新手总结自己的思维导图的参考。
这个压缩包“JavaSE总结及思维导图.zip”包含了作者对于JavaSE学习的个人理解和整理,通过Typera的形式进行表达,以及使用XMind创建的思维导图来帮助记忆和理解。 首先,让我们深入探讨JavaSE中的核心概念: 1. **...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它以其“一次编写,到处运行”的特性而闻名,这意味着编写好的Java程序可以在任何支持Java的平台上运行,无需重新...
总结,面向对象编程的类和对象是Java编程的基础,理解这些概念对于编写高效、易于维护的Java代码至关重要。通过类,我们可以封装数据和行为;通过对象,我们可以实例化这些类并操作其中的数据。在实践中,还需要掌握...
2. **类与对象**:这是面向对象编程的基础,包括类的定义、对象的创建、封装、继承、多态性以及访问修饰符(public、private、protected)的概念。 3. **集合框架**:Java提供了丰富的集合类,如ArrayList、...
### Java SE 核心知识点详解 ...以上是对 Java SE 基础知识的一些总结,涵盖了从 Java 的基本概念到面向对象的基本思想。这些知识点是学习 Java 编程的基础,也是进一步深入学习和实践 Java 技术的前提。
Java语言概述中,我们需要知道Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现属Oracle公司)推出。JDK(Java Development Kit)是开发和运行Java程序的工具集,包含JRE(Java Runtime Environment...
JavaSE知识点总结 ... JavaSE知识点总结涵盖了Java语言的基础知识和高级应用,包括面向对象、继承、多态、抽象、final、static、多线程、IO体系等。了解这些知识点对于 Java 开发人员来说非常重要。
javaSE中面向对象是一个非常不好理解的章节,很多大学老师都没法讲清楚这章,这是我花了不少时间进行整理梳理出来的思维导图,对于Java的学习者来说,这个思维导图还是很有用的