本文目錄一覽:
- 1、大一軟件新生一枚 有點疑惑 大一上學期稀里糊塗的學了C 下學期自學了JAVA 目前打算接觸一下HTML 望解惑
- 2、一元錢分成1分,2分,5分,一共有多少種分發兒?用c語言程序做
- 3、用objective-c語言實現一個消息中心(NSnotificationcenter)功能
- 4、c語言:老師給十個小孩分發糖果,第一個和第二個小孩各分一塊糖,
大一軟件新生一枚 有點疑惑 大一上學期稀里糊塗的學了C 下學期自學了JAVA 目前打算接觸一下HTML 望解惑
軟件工程專業大一都會學一個學期的C,大二會學習C++與java。 老弟,請你記住,這三門語言裡面一定要精通一門,別什麼都去學。軟件工程重要的幾科是:計算機算法、數據結構(特別重要)、操作系統、計算機網絡、分布式系統。這幾科理論一定要認真聽課,一定要掌握好,它們決定了你日後的路能走多遠,至於上面的編程語言都只是他們的實現,學習那種語言由你自己決定,如果你學的是java或者是C++,那麼還要精通“設計模式”以及“面向對象理論”。下面是我學習java的路線圖。
1.首先找一本簡單的教材,先對java有個基本的認識(大概看那麼半個月就差不多了,隨便下載一本入門的書就行了)
2.然後推薦你看java核心技術,分為上下兩卷,已經是第八版了,大概有一千六七百頁;當 你看完後,基本的java知識已經掌握了(記住,一定要多練習啊)(但是要弄懂,呵呵,至少看個三四遍吧,這兩本書只要能搞懂70%就很不錯了)
3.這個時候可以看看thinking in java中文名”java編程思想”,這本書寫的比較難,如果看完了,而且懂了,那麼證明java水平到達了一個中等的層次;(去參加面試的時候問的那些java知識完全可以應付過來了)(或者可以先看下面的書,邊看thinking in java這本書,這樣也是可以的,而且學習的效率應該會高些)
4.然後java就會分方向,j2me(手機編程),已經過時了;j2ee方向(Web編程),先學html,javaScript,css(這些書多得數不清),然後就學servlet、jsp還有tomcat服務器,《jsp應用開發詳解》(入門) 《Servlet與JSP核心編程》(核心) 《Tomcat與Java Web開發技術詳解》這幾本書還不錯,然後就可以學習SSH
5.學習數據庫理論、JDBC(最好能夠學好oracle),學習struts的時候建議從struts1開始學起《精通Struts基於MVC的Java Web設計與開發》,然後就可以學習struts2《Struts2權威指南》,接下來學習Hibernate《精通Hibernate:Java對象持久化技術詳解》,最後學習Spring《spring2.0技術手冊》和EJB《Enterprise JavaBeans, 2nd Edition》(提示:只要java基礎學得好,這些東西都會學得很快)
6.這個時候就要把注意力放在設計模式(做應用特別重要),數據結構和計算機算法上面來了,設計模式可以先看深入淺出設計模式 然後再看java與模式, 數據結構可以看清華大學嚴慰敏老師寫的那本教材;計算機算法要了解基本的排序,如果時間充裕可以看那個算法導論。 (設計模式,數據結構和算法才是真正的精髓,光看懂還不行的,一定要多練習多思考) ,理論上來說,5萬行以上的代碼量可以看懂設計模式,20萬行以上可以運用設計模式 (第一個重點)
7.等掌握前面的這些知識之後,推薦看effective java,這本書是目前java領域公認的高級書籍。在項目中肯定會遇到一些前端的知識,那麼得精通javascript、Ajax,JavaScript權威指南(入門), JavaScript高級程序設計(進階),這兩本書弄懂了,那麼學習jquery和extjs都會很快的深入淺出ExtJS和《鋒利的jQuery》。
8.學習SSH源碼,裡面的思想太多太有用了。不要心急,不要圖快,所有的書要一本本的慢慢看,多看幾遍(一本書看上個四五遍,就可以成高手,呵呵)。
9.java基礎(j2se)的重點有:繼承、多態、流、線程、網絡編程、反射、集合、數據庫連接、泛型、JNI技術、分布式技術還有解析xml也是很重要的,如果你想學android手機編程,那麼SWING和AWT要熟悉一下。《Google+Android開發入門與實戰》(入門) 《Google Android SDK開發範例大全》(深入)(建議把android當作業餘愛好,把web編程當作主攻方向,因為j2ee包含了大量框架知識),書很多,可以自己去搜。多想 多看 多練才是王道,不要相信什麼培訓機構,這些都沒啥用,真正學好只能靠自己。
10.面向對象思想+java基礎(j2se)+數據結構+設計模式+計算機算法為核心,本科生什麼都可以不學好,唯獨這幾科一定要學好,切記切記!(第二個重點)
11.學完以上的知識,可以做一個ERP系統了,不過這些都還只停留在Web application階段,這裡也是本科生與研究生的分水嶺!
12.互聯網的制高點是Web Service,前端是J2EE+移動終端(Android、IOS、黑梅),後端是linux操作系統。
12.那麼如何將大量的服務器集成呢?如何把一個工作分為多個任務分發給多個服務器來處理呢?如何將解決多個服務器之間通信的問題呢?如何解決服務器之間高並發的問題呢?
如何建立一個Web Service提供接口讓外界調用呢?(這些都是研究生學習的內容)
13.深入理解計算機網絡、操作系統、分布式系統的原理知識。學習RMI、JMS、《JAVA消息服務》,《JAVA並發編程實踐》對這些問題都有一個初步的介紹與實現
14.學習linux操作系統《鳥哥的私房菜》
15.學習處理服務器端的海量數據,雲計算等知識 《Hadoop權威指南》
16.集成系統的時候,有可能上游企業用的是其他的語言,那麼你還得去學另外的語言。
17.掌握一門腳本語言,比如ruby
18.軟件工程的名言 “什麼是專業?專業就是你比別人花更多的時間!”(多花時間) “最好的最厲害的招式就是沒有招式!”(設計模式的最高境界)
一元錢分成1分,2分,5分,一共有多少種分發兒?用c語言程序做
#includestdio.h
int main(void)
{
int i,j,k,s=0; //i為1分硬幣,j為2分硬幣,k為5分硬幣
for(i=1;i100;i++)
for(j=1;j50;j++)
for(k=1;k20;k++)
if(5*k+2*j+i==100)
{
printf(“%d\t%d\t%d\n”,i,j,k);
s++;
}
printf(“s=%d”,s);
}
用objective-c語言實現一個消息中心(NSnotificationcenter)功能
對象之間進行通信最基本的方式就是消息傳遞,在Cocoa中提供Notification
Center機制來完成這一任務。其主要作用就是負責在任意兩個對象之間進行通信。使用方法很簡單,如下幾個步驟即可:
假設A與B之間進行通信,B來觸發事件,A接受該事件,並作出響應。
1)
A編寫自定義的消息響應函數update
2)
A向消息中心註冊,[NSNotificationCenter
defaultCenter]
addObserver:
self
selector:@selector(update)
name:@”update”
object:nil]
3)
B觸發事件[[NSNotificationCenter
defaultCenter]
postNotificationName:@”update”
object:nil]
每一個進程都有一個默認的NSNotificationCenter,可以通過類方法defaultCenter獲取該消息中心的實例。消息中心可以處理同一進程中不同對象之間的消息。如果要在同一台機器上進行進程間的通信,需要使用NSDistributedNotificationCenter。
消息中心以同步的方式將消息分發到所有的觀察者中,換言之,直到所有的觀察者都收到消息並處理完畢以後,控制權才會回到調用者的手裡。如果需要異步的處理消息,需要使用通知隊列NSNotificationQueue。
在多線程程序中,通知會被分發到每一個發起消息的線程中,這可能與觀察者註冊時所在的線程已經不是同一線程。
實例:
@implementation
TestClass
–
(void)
dealloc
{
//
If
you
don’t
remove
yourself
as
an
observer,
the
Notification
Center
//
will
continue
to
try
and
send
notification
objects
to
the
deallocated
//
object.
[[NSNotificationCenter
defaultCenter]
removeObserver:self];
[super
dealloc];
}
–
(id)
init
{
self
=
[super
init];
if
(!self)
return
nil;
//
Add
this
instance
of
TestClass
as
an
observer
of
the
TestNotification.
//
We
tell
the
notification
center
to
inform
us
of
“TestNotification”
//
notifications
using
the
receiveTestNotification:
selector.
By
//
specifying
object:nil,
we
tell
the
notification
center
that
we
are
not
//
interested
in
who
posted
the
notification.
If
you
provided
an
actual
//
object
rather
than
nil,
the
notification
center
will
only
notify
you
//
when
the
notification
was
posted
by
that
particular
object.
[[NSNotificationCenter
defaultCenter]
addObserver:self
selector:@selector(receiveTestNotification:)
name:@”TestNotification”
object:nil];
return
self;
}
–
(void)
receiveTestNotification:(NSNotification
*)
notification
{
//
[notification
name]
should
always
be
@”TestNotification”
//
unless
you
use
this
method
for
observation
of
other
notifications
//
as
well.
if
([[notification
name]
isEqualToString:@”TestNotification”])
NSLog
(@”Successfully
received
the
test
notification!”);
}
@end
c語言:老師給十個小孩分發糖果,第一個和第二個小孩各分一塊糖,
#include stdio.h
#include math.h
float GetSweets(int seqNum){
if(seqNum 1)
{
return 0;
}
else if(seqNum%2 == 0){
return pow(3.0,(seqNum/2 -1));
}
else
{
return pow(2.0,(seqNum/2));
}
}
int main(void)
{
printf(“第九個孩子得到:%d 個糖果\n”,(int)GetSweets(9));
printf(“第十個孩子得到:%d 個糖果\n”,(int)GetSweets(10));
return 0;
}
試試看行不行。我調用了下pow來算冪次方。哥們,函數已經寫好了,你修改下參數不就得到結果了…看來你是真不會寫程序啊….sorry啊,哥們兒,一個整除和取余弄混了,你再試下。
原創文章,作者:JTYT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/143530.html