使用的课本: Java语言程序设计(基础篇)----西电 李娜(译) 原著: Introduction to Java Progrmming(Eighth Edition) -----Y.Daniel Liang 使用Eclipse编译器. 1.计算机.程序和Java概述 ❶Java流行的原因:简单,面向对象,分布式,解释型,鲁棒,结构中立,安全,可移植,高性能,多线程,动态.一旦编写,任何的地方可运行. ❷区分大小写.如main不能写成Main.标识符由字母,下划线,美元"$",数字…
1文件类File    ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下:                  new File("c:\\book");//在目录下创建一个File对象                new File("c:\book\test.text");//以某个文件创建一个File对象    ❷构造函数:                File(…
1.声明数组变量:        double[] array=new double[10];         double array[]=new double[10];       double[] array1=new double[5];       double[] mylist={1.0,2.0,3.0,4.0};//声明创建和初始化一句表达,不能拆分     double[][] myArray=new double[2][];//maArray.length=5,注意此时new…
java.util.Scanner应用详解   java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地.   一.扫描控制台输入   这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了. 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scann…
1.异常与异常处理 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常.绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败.之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意. 异常就是一个表示组织执行正常进行的错误(情况).异常没有处理,程序将非正常终止.这是Java鲁棒性的一个体现.异常处理最根本的优势或者目的:…
1.初始化 String类是Java预定义类,非基本类型而是引用类型. public class StudyString { public static void main(String[] args) { String s1="Hello World";//初始化1 String s2=new String("Hello World");<span style="font-family: Arial, Helvetica, sans-serif;&…
1.选择结构与输出 ❶Switch语句: Switch表达式必须算出 char,byte,short,int类型数值之一,总是括号括住:Value1----ValueN,对应有相同数据类型且为常量或者常量表达式(1+2,'A'+2),不能包含变量(如1+x); 从某个匹配语句开始向后执行.break和默认情况default可选 ❷条件表达式:System.out.println((a>b)?:a:b); ❸格式化控制台输出Printf:       %b   布尔值              …
1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存储器和cache中的值在某个瞬间的值不同.在多线程中,某个线程访问的可能是cache的值而非主存储器. volatile保证线程直接访问主存储器,保证数据的一致性.volatile只能用于基本数据类型或者数组(boolean,byte, char, double ,float, integer, l…
1.多线程  1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点.每个线程都有独立的堆栈.计数器.本地变量.但是能够共享内存,文件处理器,预存储状态等资源.JVM至少有主线程和垃圾清理进程. 1.2使用多线程的好处 如果能合理地使用线程,将会减少开发和维护成本,甚至可以改善复杂应用程序的性能.如在GUI应用程序中,还以通过线…
1.包装类 ❶出于对性能的考虑,并不把基本数据类型作为对象使用,因为适用对象需要额外的系统花销.但是某些Java方法,需要对象作为参数,例如数组线性表ArrayList.add(Object).Java将基本数据类型包装成类,即所谓的包装类---包括:数值包装类Number(Integer,Short,Byte,Float,Double,Long,) ,Character,Boolean. 其继承结构体系如下图所示: ❷数值包装类均扩展自抽象类Number.所有数值包装类数组均是Object([…
1.Object中的equals方法 java中的的基本数据类型:byte,short,char,int,long,float,double,boolean.==比较的是值. ❶作用:对于复合类型来说,equal判断两个引用变量是否指向同一个对象,即判断地址(等同"==").返回true,否则返回false.并没有实际检查是否内容相同.默认实现为: public boolean equals(Object obj)       {return (this==obj);} [java] …
1.Java数据类型       ❶不可变类,是指当创建了这个类的实例后,就不允许修改它的属性值. 它包括:         Primitive变量:boolean,byte, char, double ,float, integer, long, short         JDK不可变类:Boolean, Byte, Character, Double, Float, Integer, Long, Short, String (java.lang包中)      ❷可变类,是当你获得这个类的…
1.数组线性表ArrayList 数组一旦定义则不可改变大小.ArrayList可以不限定个数的存储对象.添加,插入,删除,查找比较数组更加容易.可以直接使用引用类型变量名输出,相当于toString().输出一个数组([,,,,,,]),数组中元素为对应标号存储元素的toString[]. 数组线性表和数组的区别总结如下: public class TestArrayList { public static void main(String[] args) { java.util.ArrayL…
1父类和子类: ❶父类又称基类和超类(super class)子类又称次类和扩展类.同一个package的子类可以直接(不通过对象)访问父类中的(public,缺省,protected)数据和方法. ❷扩展关键字:extends.倘若子类Circles,父类GeometricObject.定义: public class Circles extends GeometricObject ❸Java只容许单一继承,即一个类只能继承自1个父类.多重继承使用接口实现. 2.子类使用父类的构造函数 ❶su…
1.知识要点 ❶不可变类:一旦创建,其内容不能改变的类称之为不可变类.满足:⑴所有数据域私有,⑵没有修改器,⑶没有访问器方法,其返回一个指向可变数据域的引用.(这样通过引用就能修改私有数据域).比如,返回数组,String等皆可能导致实际数据被改变 ❷变量作用域:类的变量和方法可以任意顺序出现,只要方法没有使用某个变量.方法可以定义与类数据变量名称(实例变量和静态变量)相同的局部变量,且使用具有较高的优先级. ❸this引用:指向本身的引用.可以在无参和少参构造函数中使用this调用多参构造函数…
1.知识要点 假设: public ClassName{     int data;   String name;     ClassName(){data=1;}     public static int getdata(){return data;}}</span> ❶含main()的为主类.多个类放在一个文件中,只能有一个主类. ❷类可以不定任何构造方法(函数),系统默认提供无参构造函数.当且仅当无任何无参构造函数时才提供. ❸构造函数与类同名,无返回类型.   ❹对象声明:Class…
1.基本知识点    ❶方法在C++里面称为函数.调用方法时,应该类型兼容--即不需显式类型转换即可将形参传递给实参.    ❷形参的改变不影响实参的值.    ❸Java注重模块化设计和自顶向下的设计 2.Math类 Math隐式导入,故不需要import.常用函数如下: ❶正三角和反三角函数:sin(),cos(),tan(),asin(),acos(),atan().类型均为double,输入弧度 ❷角度弧度转换函数:toRadians(),toDegrees().参数和返回类型均为dou…
1.知识点概叙 ① 定名常量:关键字final,类似C++ const定义,一般用大写:final double PI=3.1415926 ② 5/2=2:5.0/2=2.5://通常意义的除法,至少一个操作数为浮点数. ③ 当且仅当被除数为负时,余数才为负:-7%3=-1,-26%8=-2:20%-13=7 ④ 浮点数一般近似存储,整形才是精确的存储.整形一般默认是int,浮点浮点数一般默认是double.赋值或者计算时,应用L或F显示标注如:System.out.print(3.0F/10.…
注意,在UML图中,public-protected-private分别用+,-,#表示. 类中成员修饰符 在同一类访问 在同一包访问 在子类内访问 在不同包可访问 Public √ √ √ √ Protected √ √ √ - Default √ √ - - Private √ - - - 说明: 1.对于子类.同一包的子类可以直接访问(public,protected,default),不同包的子类只能直接访问(public,protected)       2.对于非子类.同一包的可以经…
内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的,你不知道如何入门? 别担心,这个系列教程就是为C++初学者准备的. 不可否认,C++是一门非常著名的语言.几乎学计算机的同学都难免要碰一下C++,中国的大学课堂一般也是先学C语言入门,然后就是Java或者C++. C++ 这门语言的使用很广泛,特别是在游戏开发领域,C++的性能和无限可能性使得其几乎…
JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很多的知识点需要我们的突破,所以写下这个java进阶之旅的系列,这个系列不会说的那么的基础,主要是对一些高级点的功能进行剖析,所以,一起来看看吧! 一.增强for循环 for循环在我们的开发中是非常非常的多的,但是有多少人会用增强for循环?其实还是有很多人会用哈,但是还是有很多人一知半解,我们来看一…
内容简介 1.第二部分第二课:命令行,世界尽在掌握 2.第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:“小编,你为什么每次都要起这么非主流的标题呢?不能愉快地玩耍么?” 小编:“那我问你,老子他为什么要写<道德经>咧?” 读者:“为什么咧?” 小编:“因为老子愿意!” 开个小玩笑轻松一下 O(∩_∩)O~ 没办法,不能不激动,因为我们终于来到了这一刻,命令行的征程将从此课开始. 而且你会发现,一旦入门并且精通了Linux命令行,那…
内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[Web探索之旅]的最后一部分. 我们的第二和第三部分都略有难度,不过这第四部分和第一部分一样,都会比较轻松愉快. 这一课我们来聊一聊Web程序员,Web的文化,如何成为一名优秀的Web程序员. 或许看完这部分,你会跃跃欲试,想要成为一名Web程序员也不一定.毕竟现在Web程序员还是比较吃香的. 第四部…
内容简介 1.第一部分第三课:第一个C++程序 2.第一部分第四课预告:内存的使用 第一个C++程序 经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++是什么,我们也安装了适合自己的一个IDE(Integrated Development Environment,就是“集成开发环境”的意思). 如果你真的要开始在Linux下编写程序,除了使用IDE之外(IDE集成了文本编辑器,编译器,调试器,运行程序等),也可以选择另一种难一些的方式:自己用某一种文本编辑器来编写C++…
内容简介 1.课程大纲 2.第一部分第九课:函数 3.第一部分第十课预告: 练习题+习作 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文件读写 动…
前言: 对于java的代码审计我就是一个小白,没有代码基础(不会java),从0开始记录我的java漏洞的审计学习之旅.对于java来说是一门很难的语言,但是不去学习就永远不会.对于一门很复杂的语言如果学习的过于仔细专研原理追求完美,容易跑偏消耗积极性和精力,我学的是代码审计而不是java开发,所以我学的比较有针对性,对此仅仅是我个人看法. 00x1: java的基础知识,由于语言的特性,我不是去搞开发所以根据以往的语言经验,我直接在菜鸟的java教程过一遍基础语法,了解java的语言特性,语法…
内容简单介绍 .第四部分第三课:文件传输.潇洒同步 2.第四部分第四课:分析网络.隔离防火 文件传输.潇洒同步 这一课的内容相对简单,所以我们慢慢享用. 经过上一课的学习.我们已经知道怎样远程连接到其它电脑了. 从今以后.你就能够在自己的电脑上执行命令,来控制远方的还有一台电脑了,非常酷吧. 我们继续探究Linux的奇幻网络世界. 这个网络世界比較特别,或许你已经有所体会:前辈们做了大量努力,靠加密方法来保证网络间传输的数据的安全.以防我们私人的信息泄露.比如password. 这一课我们来学习…
package com.rui.test; import java.util.Scanner; /** * @author sunshine * @version 1.0 * @date:2015年11月1日 下午7:34:28 * @description: 通过控制台输入的数字打印菱形字母 */ public class MathCounter { public static void main(String[] args) { Scanner scanner = new Scanner(S…
一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流从字符流中读入数据.只能读取字符串,若需要读取其他类型的数据需要手工进行转换.代码如下: BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; t…
内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是什么,以及如何安装Linux系统(我们以Ubuntu这个Linux发行版为以后的演示系统),我们也在上一课终于把Ubuntu安装好了. “很不错,掌声给自己”. 安装Ubuntu遇到什么问题,可以在我们的QQ群和微信群提问,也可以私信小编,QQ.微信.邮件都行.联系方式在下面. Linux系统确实对…