学习有方法,自学有技巧。首先,我觉得,想学好编程首先要爱好这个,其次要能吃苦,会独立思考,举一反三。最重要是不断学习,因为技术发展很快。
我自己常在网站上别人写的干货,总结的经验,但慢慢发现当时看了茅舍顿开,当自己用的时候还是有些模糊不清。毕竟,别人总结的永远是别人的,而且有时候同一个技术有不同版本,最主要看了还经常忘,于是,就开始在CSDN中作笔记,做总结,分享一下自己的学习过程。
想学好androd,必须夯实Java基础。我入手的的第一本Java书偏向于基础,本人觉得初学者不用看太多的书,找相对基础的书系统学习,最主要是看自己学的程度,而且看书是有技巧的:
首先,一本书不需要全部看完,有些技术是用不着的;
其次,对于书中的知识点要能举一反三,适当拓展;
最后,也是最重要的一点,一定一定要跟着敲示例代码。
1.定义:Java是一门高级的面向对象的程序设计语言。
2.版本:有JavaSE(标准版)、JavaEE(企业版),JavaME(嵌入系统开发)三种版本。
2.特点:
a.既是编译型又是解释型,程序经过编译之后转换为一种称为Java字节码的中间语言,Java虚拟机(JVM)对字节码进行解释和运行。编译只进行一次,解释每次程序运行时都会运行。
b.多线程,可同一时间进行多项任务;
c.面向对象编程,Java提倡万物皆对象。
当然,Java不止这么一些特点,还有分布性、高性能、动态等等特点。
1.JDK下载:http://www.oracle.com。
2.环境配置:在环境变量中添加Path路径,在控制台中输入Javac查询是否配置成功。
3.工具下载:我最初用的是Eclipse,网站为http://www.eclipse.org。
public class Test{
static final double PI = 3.14;//常量声明
static int age = 23;//声明int型成员变量
public static void main(String[] args){//主方法
final int number;//声明int型常量
number = 1235;//对常量赋值
age=22;//再次对变量赋值
System.out.println("PI值"+PI);
System.out.println("number值"+number);
System.out.println("age值"+age);
}
}
a.赋值运算符:将左边的值赋给右边,用“=”号表示,是一个二元运算符;
b.算术运算符:有+(加)、-(减)、*(乘)、/(除)、%(求余),是一个二元运算符;
c;自增和自减运算符:用“++”、“–”表示,是一个单目运算符;
d:比较运算符:有">“、”<“、“==”、“>=”、“<=”、”!=",运算结果是boolean型;
d.逻辑运算符:有“&& ”(逻辑与)、“||”(逻辑或)、“!”(逻辑非),除逻辑非是单目运算符,其余都是双目运算符;
e.位运算符:有“按位与”、“按位或”、“按位取反”、“按位异或”、“移位”运算,除“按位与”、“按位或”运算符外,其他只能用于处理整数;
f.三目运算符:条件式?值1:值2。
增量减量运算>算术运算>比较运算>逻辑运算>赋值运算。
从低级类型向高级类型转换,系统将自动执行。基本数据类型会涉及数据转换,不包括逻辑类型和字符类型,从高到低排列的顺序为double>float>long>int>short>byte。
如;int x = 50;
把高精度赋值给低精度的变量时,必须使用显示类型转换。语法为:
(类型名)要转换的值
如ina a = (int)45.23 ;
1.单行注释:“//”
2.多行注释:“/**/”
3.文档注释:“/ ** */”
复合语句以整个块区为单位,又称块语句,有开括号“{”开始,闭括号“}”结束,如:
public class Test{
public static void main(String[] args){//主方法
int a = 20;
{//复合语句
int y = 20;
Systenm.out.println(x)
{//复合语句
int z = 252;
Systenm.out.println(x)
}
}
}
}
1.简单型:if(布尔表达式){语句序列}
,如
int a = 100;
if(a == 100){
System.out.println(a);
}
2.if…else
int a = 200;
if(a==200){
System.out.println(a);
}else{
System.out.println(“错了”);
}
3.if…else if多分支
int a = 200;
if(a>300){
System.out.println(“大于300”);
}else if(a > 250){
System.out.println(“大于250”);
}else{
System.out.println(“都不是”);
}
String str = “你好Java”;
switch(str){
case “你好”:
System.out.println(“你好”);
break;
case “Java”:
System.out.println(“Java”);
break;
case “你好Java”:
System.out.println(“你好Java”);
break;
default:
System.out.println(“都不是”);
}
语法:while(条件表达式){执行语句}
int x = 1;
int sum= 0 ;
while(x <=10){
sum = sum + x;
x++;
}
System.out.println(sum);
do { 执行语句 } while(条件表达式);
例:
public class Test{
public static void main(String args[]){
int a = 100;
while(a==60){
System.out.println(“yes”);
a--;
}
int b =100;
do{
System.out.println(“no”);
b--;
}while(b==60);
}
}
语法如下:
for(表达式1;表达式2;表达式3){
语句序列
}
或者foreach语句
for(元素变量X:遍历对象obj){
引用了x的语句;
}
例:
public class Test{
public static void main(String args[]){
int sum = 0;
for(int i =2;i<100;i++){
sum = sum+i;
}
System.out.println(“总和为:”+sum);
}
}
有两个关键字,break和continue。区别为
break语句:中断循环
continue语句:执行下一次循环
注意:如果是嵌套循环,break只跳出最内存的循环结构,如果想让跳出最外层,可用“标签”形式。
标签名:循环体{break标签名}
char只能表示单个字符,而String可以创建字符串对象。
语法:String str
,声明字符串变量必须经过初始化才能使用。
1.连接多个字符串用“+”号,如果连接其他类型,会将这些数据直接转化成字符串。
2.获取字符串长度:str.length()
3.字符串查找:str.indexOf()
4.字符串截取:str.substring(int index)
5.字符串判断:“==”是判断两个字符串的地址是否相等,equals()可用于比较内容。
6.格式化字符串:str.format(String format,Object...args)
7.字符串生成器:StringBuilder()
1.定义:数组是具有相同数据类型的一组数据结构。
2.例子:
public class Test{
public static void main(String args[]){
// 一维数组创建并遍历
int day[] = new int[]{20,21,22,23,24,25}
for(int i =0;i<6;i++){
System.out.println(“遍历数组:”+i );
}
// 二维数组创建并遍历
int a[][] =new int[3][4]
for(int = 0;i<a.length();i++){
for(int j = 0;j<a[i].length();j++){
System.out.println(a[i][j]);
}
}
}
}
3.常用方法:
填充数组:fill(int[] a,int value),前者为数组,后者为具体值
数组排序:Arrays.sort(Object),升序排序。
复制数组:copyOf(arr,int length),前者为数组,后者为新数组的长度。
查询数组:binarySearch(Object[],Object key),前者要搜索的数组,后者为要搜索的值。
public class Test{
public static void main(String args[]){
int[] array = {62,15,28,39,45};//创建数组,无序
Test sorter = new Test();//创建排序对象
sorter.sort(array);//d=调用方法排序
}
//冒泡排序
public void sort(int[] array){
for(int i=1;i<array.lengh;i++){
for(int j = 0;j<array.length-i;j++){
if(array[j]>array[j+1]){
int temp= array[j];//把第一个元素值存临时变量
array[j]=array[j+1];//把第二个元素值存入第一个值中
array[j+1]=temp;//把临时变量保存在第二个元素
}
}
}
showArray(array);//输出元素
}
//显示元素
public void showArray(int[] array){
for(int i:array){
System.out.print(">"+i)
}
System.out.println()
}
}
public class Test{
public static void main(String args[]){
int[] array = {62,15,28,39,45};//创建数组,无序
Test sorter = new Test();//创建排序对象
sorter.sort(array);//d=调用方法排序
}
//直接排序
public void sort(int[] array){
int index;
for(int i=1;i<array.lengh;i++){
for(int j = 1;j<array.length-i;j++){
int index = 0;
if(array[j]>array[index]){
index = j;
}
}
int temp= array[array.length-i];//把第一个元素值存临时变量
array[array.length-i]=array[index];//把第二个元素值存入第一个值中
array[index]=temp;//把临时变量保存在第二个元素
}
showArray(array);//输出元素
}
//显示元素
public void showArray(int[] array){
for(int i:array){
System.out.print(">"+i)
}
System.out.println()
}
}
public class Test{
public static void main(String args[]){
int[] array = {62,15,28,39,45};//创建数组,无序
Test sorter = new Test();/泡沫排序对象
sorter.sort(array);//d=调用方法排序
}
//反转排序
public void sort(int[] array){
showArray(array);//输出排序前元素
int temp;
int len = array.length;
for(int i =0;i<len/2;i++){
temp=array[i];
array[i]=array[len-1-i];
array[len-1-i] = temp;
}
showArray(array);//输出排序后元素
}
//显示元素
public void showArray(int[] array){
for(int i:array){
System.out.print(">"+i)
}
System.out.println()
}
}
个人总结的重要基础篇知识就以上这些,下一篇将向Java核心技术进攻。